Подтвердить что ты не робот

Удалить неиспользуемые новые строки DGV

У меня есть несвязанный DGV, и я хочу удалить ненужную последнюю строку в DGV. Оставьте EventHandller. Как это сделать?

Я знаю, что нужно добавлять новые строки в dgv программно и устанавливать свойство AllowUserToAddRows = false.

Но мой вопрос: возможно ли удалить последнюю строку DGV без установки свойства AllowUserToAddRows = false?.

ИЛИ

Можно ли удалить незафиксированные новые строки DGV?

4b9b3361

Ответ 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;