Я создал собственный элемент управления сеткой данных, который вызывает событие ovveride OnKeyDown:
public partial class PMGrid : DataGridView
{
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress = true; //suppress ENTER
//SendKeys.Send("{Tab}"); //Next column (or row)
base.OnKeyDown(e);
}
else if (e.KeyCode == Keys.Tab)
{
base.OnKeyDown(e);
this.BeginEdit(false);
}
else
{
base.OnKeyDown(e);
}
}
}
Когда я нажимаю на сетку данных и нажимаю Enter, она отлично работает, потому что строка не изменена, и событие KeyUp вызывается.Но когда я нажимаю клавишу Tab, выбирается следующая ячейка, и она изменяется на режим редактирования.И когда я нажимаю Enter в этой ячейке, событие KeyUp не запускается и KeyPress тоже.Я пытаюсь сделать так, чтобы пользователь мог перейти из одной ячейки в следующую, а затем пользователь может что-то записать в эту ячейку, а затем, когда пользователь нажимает Enter, это значение сохраняется в базе данных.Но когда ячейка находится в режиме редактирования, я не могу обнаружить этого пользователя, нажав Enter.
Спасибо