我有一个数据绑定DataGridView
.添加新行并且用户按下时Esc我想删除整行.我怎样才能做到这一点?
实际上非常容易
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并允许删除,否则无法以编程方式删除行
如果要从DataGrid中删除行,则必须使用BindingSource而不是列表,否则在执行此操作时会出现异常.
试试这个:
public partial class YourForm : Form { private BindingSource _source = new BindingSource(); public YourForm() { Listlist = _service.GetList(); _source.DataSource = list; _grid.DataSource = _source; } }
现在,您可以使用数据源,网格将自行运行.每次更改后都不要忘记调用_grid.Refresh().
干杯,
安德烈卡鲁奇