只找到了删除行和列的函数,行删除后提交数据源表会改变内容;
列删除后提交无效改变数据源表内容,采取删除数据源表列的办法;
无法删除所有行,采取获取数据源表后清除表所有行,再赋值给控件。
(a, b) => { if (删除数据确认("确定要删除所有数据?\r\n并添加至少一条数据,否则将引发程序错误;\r\n如果选择菜单【退出】则保存修改;\r\n如果选择窗体【关闭】不保存修改。", "友情提醒!") == System.Windows.Forms.DialogResult.OK)
{ DataTable 表 = (DataTable)数据列表.DataSource; 表.Rows.Clear(); 数据列表.DataSource = 表; 数据列表.EndEdit(); }},
(a, b) => { if(删除数据确认("确定要删除所有数据?","友情提醒!") == System.Windows.Forms.DialogResult.OK ){ 数据列表.Rows.RemoveAt(数据列表.CurrentCell.RowIndex); 数据列表.EndEdit(); } },
(a, b) => { if(删除数据确认("确定要删除所有数据?","友情提醒!") == System.Windows.Forms.DialogResult.OK ){ 数据列表.Columns.RemoveAt(数据列表.CurrentCell.ColumnIndex); ((DataTable )数据列表.DataSource).Columns.RemoveAt(数据列表.CurrentCell.ColumnIndex); } },
DialogResult 删除数据确认(string 消息, string 标题) { return MessageBox.Show(消息, 标题, MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation); }
(a, b) => { 数据列表.Rows.RemoveAt(数据列表.CurrentCell.RowIndex); 数据列表.EndEdit(DataGridViewDataErrorContexts.RowDeletion); /*数据列表.NotifyCurrentCellDirty(false );*/},
//foreach (DataGridViewColumn 列 in 数据列表.Columns) 列.SortMode = DataGridViewColumnSortMode.NotSortable;
//数据列表.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
//设置多选列则多选行失效
(a, b) => { if (删除数据确认("确定要删除所有数据?\r\n并添加至少一条数据,否则将引发程序错误;\r\n如果选择菜单【退出】则保存修改;\r\n如果选择窗体【关闭】不保存修改。", "友情提醒!") == System.Windows.Forms.DialogResult.OK)
{ 数据列表.SelectAll(); foreach (DataGridViewRow 行 in 数据列表.SelectedRows) if(数据列表.Rows.Count - 1 > 行.Index) 数据列表.Rows.RemoveAt(行.Index); 数据列表.EndEdit(); }},
(a, b) => { if(删除数据确认("确定要删除所有数据?","友情提醒!") == System.Windows.Forms.DialogResult.OK ){
if(数据列表.SelectedRows.Count == 0) 数据列表.Rows.RemoveAt(数据列表.CurrentCell.RowIndex);
else foreach (DataGridViewRow 行 in 数据列表.SelectedRows)
数据列表.Rows.RemoveAt(行.Index);
数据列表.EndEdit(); } },
(a, b) => { if(删除数据确认("确定要删除所有数据?","友情提醒!") == System.Windows.Forms.DialogResult.OK ){
数据列表.Columns.RemoveAt(数据列表.CurrentCell.ColumnIndex);
((DataTable )数据列表.DataSource).Columns.RemoveAt(数据列表.CurrentCell.ColumnIndex);} },
foreach (string 列名 in 选列.Split("◎".ToArray(), StringSplitOptions.RemoveEmptyEntries)) 数据列表[列名, 0].Selected = true;