как в C# изменить поведение DataGridView при нажатии клавиши Enter

как то раз в C# мне нужно было изменить поведение DataGridView при нажатии клавиши Enter. Но при нажатии клавиши enter автоматически выделяется следующая строка, а мне не нужно было переходить на другую строку.

В итоге, нашел решение – нужно создать свой класс MyDataGridView, унаследованный от DataGridView, в котором переопределить метод нажатия на клавишу.

using System.Windows.Forms;

namespace Program {
  public class MyDataGridView : DataGridView {
    protected override void OnKeyDown(KeyEventArgs e) {
      if (e.KeyCode == Keys.Enter) {
        // клавиша обработана
        e.Handled = true;
      }

      base.OnKeyDown(e);
    }
  }
}

Читайте также:

3 thoughts on “как в C# изменить поведение DataGridView при нажатии клавиши Enter

  1. anonim

    Данный принцип работает только без режима редактирования.
    После редактирование всё равно следующая строка.
    Можно так же сделать с обычным событием.

    Как сделать после режима редактирования.

    Reply
  2. Валерий

    Может поможет – обрабатывать событие PreviewKeyDow? Мне помогло. 🙂

    private void myJurnalDataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
    {
    if (e.Key == Key.Return)
    {
    // клавиша обработана
    e.Handled = true;
    }
    }

    Reply