如何让文本框中的回车键作为Tab键使用

23

我有几个文本框,希望按下回车键时可以像按下Tab键一样切换到下一个文本框。请问如何实现这种功能,而且不需要在文本框类中添加任何代码(如果可能的话,不要使用覆盖等方法)?


1
这是一个Web应用程序还是Win Forms应用程序? - kemiller2002
我发现了这个网址:http://www.surpluscode.com/2006/06/15/winforms-process-enter-key-press-as-tab-via-sendkeyssend/。 - Pharabus
1
这对我来说有点不正规 :) - arul
听起来可能有些取巧,但这对我很有效。GetNextControl()没有考虑到窗体上的某些控件可能是不可见或被禁用的。我尝试过做类似于这样的事情,但并不那么容易。因此,我会使用这个解决方案。谢谢Pharabus! - Tom Smykowski
我也是这个查询。谢谢你的提问。 - Sagotharan
13个回答

0

这是我在VB.NET中使用的解决方案

  1. 在您的表单属性中设置 Keypreview=True

  2. 将以下代码放入表单的 keydown 事件中:

    If (e.KeyData = Keys.Enter) Then

    '对于任何多行控件,您必须退出以让多行文本框进行“键盘输入”并跳过行。

     如果 ActiveControl.Name = txtMyMutilineTextBox.Name Then Exit Sub 
    
     e.SuppressKeyPress = True
     SelectNextControl(ActiveControl, True, True, True, True)
    

    End If

享受吧!!!!

Xabier Aberasturi Larruzea


-1

猜一个大概:

// on enter event handler
parentForm.GetNextControl().Focus();

-1
我会将Pharabus和arul的回答结合起来,像这样:
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ‘\r’)
{
e.Handled = true;
parentForm.GetNextControl().Focus()
}
}

如果这有帮助,请告诉我!JFV


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接