C # запретить действие по умолчанию для элемента управления списком при нажатии клавиш со стрелками вправо или влево - PullRequest
2 голосов
/ 23 июля 2011

У меня есть элемент управления списком в приложении для Windows, и я хочу отключить триггеры события нажатия правой и левой стрелок по умолчанию. В настоящее время при нажатии стрелок вправо или влево выбранный элемент перемещается вверх и вниз по списку. Я хочу добавить свои собственные действия.

Ответы [ 2 ]

8 голосов
/ 23 июля 2011

Попробуйте добавить обработчик событий к событию ListBox.KeyDown. Если нажатая клавиша является клавишей со стрелкой, установите флаг Handled для KeyPressEventArgs на true, чтобы предотвратить дальнейшую обработку.

Пример кода, основанный на сообщении MSDN на форуме

private void listBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
  If (e.KeyCode == Keys.Right || e.KeyCode == Keys.Left)
    e.Handled = true;
}
1 голос
/ 23 июля 2011

Необходимо переопределить метод ProcessCmdKey в элементе управления списка.Создайте новый класс, выведите его из списка, затем переопределите ProcessCmdKey.

...