我有一个数据绑定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;
}
}
Run Code Online (Sandbox Code Playgroud)
但请记住:
除非DataGridView数据绑定到支持更改通知的IBindingList并允许删除,否则无法以编程方式删除行
如果要从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;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用数据源,网格将自行运行.每次更改后都不要忘记调用_grid.Refresh().
干杯,
安德烈卡鲁奇
归档时间: |
|
查看次数: |
6005 次 |
最近记录: |