如何使TextBox上的Enter作为TAB按钮

Tom*_*ski 20 .net c# winforms

我有几个文本框.我想让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)