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