Как удалить строку DataGridView, которая добавляется, когда пользователь отменяет процесс добавления? - PullRequest
1 голос
/ 16 октября 2008

У меня есть данные DataGridView. Когда добавляется новая строка и пользователь нажимает Esc , я хочу удалить всю строку. Как я могу это сделать?

Ответы [ 3 ]

5 голосов
/ 08 сентября 2009

Если вы хотите удалить строки из 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 () после каждого изменения.

Приветствия

Андре Карлуччи

5 голосов
/ 16 октября 2008

довольно просто на самом деле

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, который поддерживает уведомление об изменениях и позволяет удалять

0 голосов
/ 25 марта 2009

Строки не могут быть удалены программным способом, если DataGridView не привязан к данным к IBindingList, который поддерживает уведомление об изменении и позволяет удалять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...