我有一个数据绑定DataGridView
。当添加新行并且用户按下Esc我想删除整行时。我怎样才能做到这一点?
Camel
问问题
6197 次
3 回答
5
实际上很容易
private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)27)
{
if (dataGridView1.Rows.Count > 0)
{
dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Count - 1);
MessageBox.Show("Last row deleted!");
}
e.Handled = true;
}
}
但请记住:
除非 DataGridView 数据绑定到支持更改通知并允许删除的 IBindingList,否则无法以编程方式删除行
于 2008-10-16T09:50:36.137 回答
5
如果要从 DataGrid 中删除行,则必须使用 BindingSource 而不是列表,否则在执行此操作时会出现异常。
尝试这个:
public partial class YourForm : Form {
private BindingSource _source = new BindingSource();
public YourForm() {
List<Model> list = _service.GetList();
_source.DataSource = list;
_grid.DataSource = _source;
}
}
现在您可以使用您的数据源,并且网格会自行运行。不要忘记在每次更改后调用 _grid.Refresh()。
干杯,
安德烈·卡鲁奇
于 2009-09-08T12:59:59.853 回答
-1
DataGridView
除非数据绑定到IBindingList
支持更改通知并允许删除的行,否则无法以编程方式删除行。
于 2009-03-25T13:27:04.007 回答