Удалить неиспользуемые новые строки DGV
У меня есть несвязанный DGV, и я хочу удалить ненужную последнюю строку в DGV. Оставьте EventHandller. Как это сделать?
Я знаю, что нужно добавлять новые строки в dgv программно и устанавливать свойство AllowUserToAddRows = false.
Но мой вопрос: возможно ли удалить последнюю строку DGV без установки свойства AllowUserToAddRows = false?.
ИЛИ
Можно ли удалить незафиксированные новые строки DGV?
Ответы
Ответ 1
Установите для свойства DataGridView AllowUserToAddRows
значение False
.
Однако вам нужно будет предоставить метод, который позволит пользователю вводить новую строку. Например, вы можете иметь это, когда пользователь дважды щелкнет DataGridView, вы установите AllowUserToAddRows в значение true. И затем, когда они будут сделаны, вы вернете значение False.
Добавить новую строку:
Допустим, ваш DataGridView называется MyDataGridView, и у вас есть кнопка BtnAddRow, а при нажатии кнопки она добавляет новую строку в ваш DataGridView.
private void btnAddRow_Click(object sender, RoutedEventArgs e)
{
// Add an empty row
MyDataGridView.Rows.Add();
}
В качестве альтернативы вы можете просто обработать событие DataGridView OnDoubleClick
, в котором вы можете вызвать MyDataGridView.Rows.Add()
, чтобы добавить новую строку.
Ответ 2
Если ваш DataGridView привязан к DataSet, это делает трюк для удаления текущей строки:
If DataGridView1.CurrentRow.IsNewRow Then
MyDataSet1.MyTable.Rows(DataGridView1.CurrentRow.Index).RejectChanges()
Else
DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
End If
Ответ 3
Я хочу удалить последнюю строку в DGV Leave Event.
Просто присоедините обработчик к событию DataGridView.Leave
и используйте этот код:
private void MyHandler(object sender, EventArgs e)
{
int count = dgv.Rows.Count;
dgv.Rows.RemoveAt(count - 1);
}
EDIT:. Вы имеете в виду последнюю пустую строку, которая появляется в DataGridView? Если да, то это позволяет пользователю создавать новые строки. Чтобы отключить его, следуйте предложению Жан-Луиса, устанавливающего свойство AllowUserToAddRows
на false
.
Ответ 4
Вы можете удалить незафиксированные новые строки в представлении datagrid, установив AllowUserToAddRows = false
grid.AllowUserToAddRows = false;