如何禁用 ListBox 中的按键导航但继续检测按键事件?

How to disable key navigation in a ListBox but keep detect the key press events?

我正在尝试禁用 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);
}

我怎样才能让它们都正常工作?

您不能将您的逻辑移动到 PreviewKeyDown 处理程序吗?

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

    e.Handled = true;
}

处理您想要的任何快捷方式,然后始终将 Handled 属性 设置为 true