【发布时间】:2021-09-16 08:53:36
【问题描述】:
我有一个 System.Windows.Controls.TextBox,如果用户按下 enter 键,我希望应用程序像 tab 一样处理它-键,以便用户可以跳转到下一个输入控件,就像他通常使用 Tab 键一样。这有可能吗?
PS:如果不使用“System.Windows.Forms.SendKeys.SendWait("{Tab}");”,我将找不到答案,我不想将其包含在我的 WPF 应用程序中。
【问题讨论】:
我有一个 System.Windows.Controls.TextBox,如果用户按下 enter 键,我希望应用程序像 tab 一样处理它-键,以便用户可以跳转到下一个输入控件,就像他通常使用 Tab 键一样。这有可能吗?
PS:如果不使用“System.Windows.Forms.SendKeys.SendWait("{Tab}");”,我将找不到答案,我不想将其包含在我的 WPF 应用程序中。
【问题讨论】:
设置TextBox1.AcceptsReturn = false;
向文本框添加 KeyDown/KeyUp/KeyPress 处理程序,如果键是 Enter 或 Return,则调用 TextBox1.MoveFocus (new TraversalRequest(FocusNavigationDirection.Next));
【讨论】:
在文本框 keydown 事件中输入以下代码:
If (e.KeyCode == Keys.Enter)
{
This.SelectNextControl(TextBox1, True, False, False, False);
}
文本框的名称是TextBox1。
【讨论】:
我不知道是不是你想要的,但在代码中你可以使用 KeyDown 事件有类似的东西:
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.TheKeyYouWant)
{
NextElementToBeFocus.Focus();
}
}
有了它,您就可以拥有想要像 Tab 一样操作的键。
【讨论】: