我有几个文本框,希望按下回车键时可以像按下Tab键一样切换到下一个文本框。请问如何实现这种功能,而且不需要在文本框类中添加任何代码(如果可能的话,不要使用覆盖等方法)?
我有几个文本框,希望按下回车键时可以像按下Tab键一样切换到下一个文本框。请问如何实现这种功能,而且不需要在文本框类中添加任何代码(如果可能的话,不要使用覆盖等方法)?
这是我在VB.NET中使用的解决方案
在您的表单属性中设置 Keypreview=True。
将以下代码放入表单的 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
猜一个大概:
// on enter event handler
parentForm.GetNextControl().Focus();
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ‘\r’)
{
e.Handled = true;
parentForm.GetNextControl().Focus()
}
}
如果这有帮助,请告诉我!JFV