У меня есть DataGridView с BindingSource, привязывающим его к DataTable. Я поместил кнопку «Удалить» в мою форму, и я хочу, чтобы она удаляла выбранную строку при нажатии, что-то вроде этого:
if (dgvResourceSettings.CurrentRow != null && !dgvResourceSettings.CurrentRow.IsNewRow)
{
bindingSource.RemoveCurrent();
}
Проблема в том, что новая строка видна в моем обзоре данных. Если пользователь выбирает эту строку, а затем нажимает кнопку «Удалить», он удаляет последнюю строку данных, то есть ту, которая находится над новой строкой. Это происходит потому, что когда сетка данных теряет фокус, она меняет текущую строку на последнюю строку данных (если текущая строка была новой строкой). Я могу убедиться в этом, просто нажав на вкладку «Просмотр данных».
Так что мне интересно, как это нормально? Я знаю, что пользователи могут просто выбрать строку и нажать клавишу DEL, но я также хочу дать им кнопку Удалить.
спасибо.
ОБНОВЛЕНИЕ: из ответов / комментариев кажется, что это нормальное поведение, поэтому трудно иметь кнопку Удалить и новую строку. Я решил удалить новую строку и вместо этого использовать кнопки «Добавить» и «Удалить».