【问题标题】:How can I fire a key press event on a keyboard when a user presses enter button wpf当用户按下输入按钮 wpf 时,如何在键盘上触发按键事件
【发布时间】:2012-04-25 13:12:18
【问题描述】:

我在 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()
              {
              }
        }
     }

【问题讨论】:

  • 问题应该是如何在WPF中为一个窗口设置Default按钮...

标签: c# wpf widget


【解决方案1】:

除了将按钮的 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;
    }
}

【讨论】:

    【解决方案2】:

    只需在您的按钮上设置IsDefault="True"。这将使您的按钮在用户按回车时自动单击。不需要 KeyDown 事件。

    【讨论】:

      【解决方案3】:

      ButtonIsDefault属性设置为True

      【讨论】:

        猜你喜欢
        • 2017-06-22
        • 1970-01-01
        • 2013-03-12
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 2014-03-28
        • 1970-01-01
        相关资源
        最近更新 更多