Как отключить навигацию по клавишам в ListBox, но продолжать обнаруживать события нажатия клавиш?

Я пытаюсь отключить навигацию по клавишам в файле ListBox. Я могу сделать это успешно с помощью этого кода ниже:

private void listClips_PreviewKeyDown(object sender, KeyEventArgs e)
{
    e.Handled = true;
}

но я хочу добавить сочетание клавиш для моей программы. Это не работает, когда я устанавливаю e.Handled = true.

private void listClips_KeyDown(object sender, KeyEventArgs e)
{
    MessageBox.Show("Key Pressed " + e.Key);
}

Как я могу сохранить их обоих работоспособными?


person sword1st    schedule 29.05.2018    source источник
comment
Вам нужно решение из этого потока: stackoverflow.com/questions/1918642/   -  person Ioan Moldovan    schedule 29.05.2018
comment
Спасибо, но я не мог заставить это работать. Он продолжает навигацию по списку   -  person sword1st    schedule 29.05.2018


Ответы (1)


Вы не можете перенести свою логику в обработчик PreviewKeyDown?

private void listClips_PreviewKeyDown(object sender, KeyEventArgs e)
{
    //custom logic...
    MessageBox.Show("Key Pressed " + e.Key);

    e.Handled = true;
}

Обрабатывайте любые ярлыки, которые вы хотите, и всегда устанавливайте свойство Handled в true после этого.

person mm8    schedule 29.05.2018