当用户按下输入按钮wpf时,如何在键盘上触发按键事件

时间:2012-04-13 06:37:44

标签: c# wpf widget

我在wpf登录表单中有一个登录按钮。我希望该用户有两个选项,第一个是让用户填写用户名和密码,然后使用鼠标按下登录按钮,第二个选项是用户可以从键盘按ENTER键。我怎样才能让它发挥作用?鼠标单击完成作业,但按ENTER键不起作用。

<Button Canvas.Left="157" Canvas.Top="292" Height="24" BorderThickness="0" BorderBrush="White" Content="Login" Name="btnLogin" Width="99" Click="btnLogin_Click"  Keyboard.KeyDown="bttnLogin_Enter"  />

我的代码是:---

    private void bttnLogin_Enter(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            try
            {
                 /// My code here
             }
           catch()
              {
              }
        }
     }

3 个答案:

答案 0 :(得分:7)

IsDefault的{​​{1}}属性设置为Button

答案 1 :(得分:2)

只需在按钮上设置IsDefault="True"即可。这将使用户点击进入时自动点击您的按钮。不需要KeyDown事件。

答案 2 :(得分:1)

除了将Button的IsDefault属性设置为true(将为整个表单设置Enter操作)之外,您还可以捕获按下文本框的Enter键。如果要捕获按多个文本框的输入多个键,请检查以下示例

假设您有文本框

<StackPanel>
  <TextBlock Width="300" Height="20">
    Type some text into the TextBox and press the Enter key.
  </TextBlock>
  <TextBox Width="300" Height="30" Name="textBox1"
           KeyDown="OnKeyDownHandler"/>
  <TextBlock Width="300" Height="100" Name="textBlock1"/>
</StackPanel>

在代码背后:

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Return)
    {
        textBlock1.Text = "You Entered: " + textBox1.Text;
    }
}