【问题标题】:Tab instead of Enter [duplicate]制表符而不是 Enter [重复]
【发布时间】:2021-09-16 08:53:36
【问题描述】:

我有一个 System.Windows.Controls.TextBox,如果用户按下 enter 键,我希望应用程序像 tab 一样处理它-键,以便用户可以跳转到下一个输入控件,就像他通常使用 Tab 键一样。这有可能吗?

PS:如果不使用“System.Windows.Forms.SendKeys.SendWait("{Tab}");”,我将找不到答案,我不想将其包含在我的 WPF 应用程序中。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    设置TextBox1.AcceptsReturn = false;
    向文本框添加 KeyDown/KeyUp/KeyPress 处理程序,如果键是 Enter 或 Return,则调用
    TextBox1.MoveFocus (new TraversalRequest(FocusNavigationDirection.Next));

    【讨论】:

    • 这个最适合我(我还在学习 WPF)。谢谢你的回答:-)
    【解决方案2】:

    在文本框 keydown 事件中输入以下代码:

    If (e.KeyCode == Keys.Enter)
        {
            This.SelectNextControl(TextBox1, True, False, False, False);
        }
    

    文本框的名称是TextBox1。

    【讨论】:

    • 对我不起作用...
    【解决方案3】:

    我不知道是不是你想要的,但在代码中你可以使用 KeyDown 事件有类似的东西:

    private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    
        if (e.KeyCode == Keys.TheKeyYouWant)
        {
          NextElementToBeFocus.Focus();
        }
    
    }
    

    有了它,您就可以拥有想要像 Tab 一样操作的键。

    【讨论】:

    • 感谢您的回复,但我正在寻找一种更通用的方法,因为我已经在我的另一个项目中使用了这种模式。
    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 2012-08-16
    • 2012-11-13
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 2021-02-11
    相关资源
    最近更新 更多