当前位置:  开发笔记 > 编程语言 > 正文

如何删除用户取消添加过程时添加的DataGridView行?

如何解决《如何删除用户取消添加过程时添加的DataGridView行?》经验,为你挑选了2个好方法。

我有一个数据绑定DataGridView.添加新行并且用户按下时Esc我想删除整行.我怎样才能做到这一点?



1> balexandre..:

实际上非常容易

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并允许删除,否则无法以编程方式删除行



2> andrecarlucc..:

如果要从DataGrid中删除行,则必须使用BindingSource而不是列表,否则在执行此操作时会出现异常.

试试这个:

public partial class YourForm : Form {

  private BindingSource _source = new BindingSource();

  public YourForm() {
    List list = _service.GetList();
    _source.DataSource = list;
    _grid.DataSource = _source;
  }
}

现在,您可以使用数据源,网格将自行运行.每次更改后都不要忘记调用_grid.Refresh().

干杯,

安德烈卡鲁奇

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有