У меня есть привязка данных DataGridView
. Когда добавляется новая строка и пользователь нажимает Esc, я хочу удалить всю строку. Как я могу это сделать?
Как удалить строку DataGridView, которая добавляется, когда пользователь отменяет процесс добавления?
Ответы (3)
довольно легко на самом деле
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, который поддерживает уведомление об изменении и разрешает удаление.
person
balexandre
schedule
16.10.2008
Если вы хотите удалить строки из 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() после каждого изменения.
Ваше здоровье,
Андре Карлуччи
person
andrecarlucci
schedule
08.09.2009
Строки не могут быть удалены программно, если только DataGridView
не привязан к данным IBindingList
, который поддерживает уведомления об изменениях и разрешает удаление.
person
Community
schedule
25.03.2009