我有几个文本框.我想让Enter按钮充当Tab.因此,当我将在一个文本框中时,按Enter将使我移动到下一个文本框.你能否告诉我如何实现这种方法而不在textbox类中添加任何代码(如果可能的话,没有覆盖等等)?
这是我经常使用的代码.它必须是KeyDown事件.
if (e.KeyData == Keys.Enter) { e.SuppressKeyPress = true; SelectNextControl(ActiveControl, true, true, true, true); }
UPDATE
其他方式是发送"TAB"键!并覆盖该方法使它更容易:)
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Enter)) { SendKeys.Send("{TAB}"); } return base.ProcessCmdKey(ref msg, keyData); }
你可以写任何控件的keyDown:
if (e.KeyCode == Keys.Enter) { if (this.GetNextControl(ActiveControl, true) != null) { e.Handled = true; this.GetNextControl(ActiveControl, true).Focus(); } }
GetNextControl在Vista上不起作用.
要使它适用于Vista,您需要使用下面的代码来替换this.GetNextControl ...:
System.Windows.Forms.SendKeys.Send("{TAB}");