Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在列表框中禁用按键导航,但保持检测按键事件?_C#_Wpf_Listbox_Keypress_Routed Events - Fatal编程技术网

C# 如何在列表框中禁用按键导航,但保持检测按键事件?

C# 如何在列表框中禁用按键导航,但保持检测按键事件?,c#,wpf,listbox,keypress,routed-events,C#,Wpf,Listbox,Keypress,Routed Events,我正在尝试禁用列表框中的键导航。我可以使用下面的代码成功完成此操作: private void listClips_PreviewKeyDown(object sender, KeyEventArgs e) { e.Handled = true; } 但是我想为我的程序添加一个快捷键。当我设置e.Handled=true时,它不起作用 private void listClips_KeyDown(object sender, KeyEventArgs e) { MessageB

我正在尝试禁用
列表框中的键导航。我可以使用下面的代码成功完成此操作:

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

您需要的是来自此线程的解决方案:谢谢,但我无法让它工作。它一直在列表框中导航