如何在wpf c#中按下TAB键时触发事件?

时间:2014-07-25 10:20:16

标签: c# wpf

当我按Tab或Shift + tab键时,消息显示,但我只想在按Tab键而不是shift + tab键时显示此消息。 如果我在Wpf C#?

中使用previewkeydown事件按Tab键时,如何定义此事件
private void txtH_PreviewKeyDown(object sender, KeyEventArgs e)
{
   if (e.Key == Key.Tab)
   {
        MessageBox.Show("Tab");
   }
}

2 个答案:

答案 0 :(得分:1)

您可以执行支票

if ((!e.KeyboardDevice.IsKeyDown(Key.LeftShift)) 
    && (!e.KeyboardDevice.IsKeyDown(Key.RightShift)) 
    && e.KeyboardDevice.IsKeyDown(Key.Tab))

或者你可以像

那样进行检查
if (!(e.KeyboardDevice.Modifiers == ModifierKeys.Shift)
    && e.KeyboardDevice.IsKeyDown(Key.Tab))

答案 1 :(得分:1)

WPF不是最适合像Winforms这样的事件驱动方式。最好将MVVM模式与Commands结合使用来分离表示和业务逻辑问题 - 这是WPF最强大的地方。

然后,您可以在View的XAML文件中定义InputBinding派生的XAML元素,并使用ViewModel中的Command属性指定要运行的Command。< / p>

e.g。

<KeyBinding Command="{Binding ShowMessageCommand}" Key="Tab" />
<KeyBinding Command="{Binding ShowMessageCommand}" Modifiers="Shift" Key="Tab" />