如何对TextBox中的某些击键采取措施?

时间:2011-04-05 16:00:28

标签: wpf textbox

我有一个带文本框的WPF窗口。我想检测用户何时按下Enter键或Tab键。当按下这些键中的任何一个时,我想绑定到视图模型中的一个动作。有人能告诉我这是怎么做到的吗?

1 个答案:

答案 0 :(得分:5)

处理KeyDown事件。

<TextBox KeyDown="TextBox_KeyDown"/>
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.Key)
    {
        case Key.Enter:
            vw.Method1();
            break;
        case Key.Tab:
            vw.Method2();
            break;
        default:
    }
}

或使用命令:

public static class Commands
{
    public static RoutedCommand Command1 = new RoutedCommand();
    public static RoutedCommand Command2 = new RoutedCommand();
}
 <TextBox>
     <TextBox.CommandBindings>
         <CommandBinding Command="{x:Static local:Commands.Command1}"
                         Executed="Command1_Executed" CanExecute="Command1_CanExecute"/>
         <CommandBinding Command="{x:Static local:Commands.Command2}"
                         Executed="Command2_Executed" CanExecute="Command2_CanExecute"/>
     </TextBox.CommandBindings>
     <TextBox.InputBindings>
         <KeyBinding Key="Enter" Command="{x:Static local:Commands.Command1}"/>
         <KeyBinding Key="Tab" Command="{x:Static local:Commands.Command2}"/>
     </TextBox.InputBindings>
 </TextBox>

如果您之前没有使用过命令,请务必阅读this overview