English 中文(简体)
当用户取消添加过程时,如何删除正在添加的DataGridView行? 如何删除当用户取消添加过程时正在添加的DataGridView行?
原标题:
  • 时间:2008-10-16 09:18:59
  •  标签:

我有一个数据绑定的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() {
    List<Model> list = _service.GetList();
    _source.DataSource = list;
    _grid.DataSource = _source;
  }
}

现在您可以玩弄您的数据源,而表格将会自行适应。每次更改后别忘了调用_grid.Refresh()。

干杯

安德烈·卡尔鲁奇

除非 DataGridView 与支持更改通知和允许删除的 IBindingList 数据绑定,否则无法在编程上删除行。





相关问题
热门标签