winforms .NET TextBox -处理Enter键

cclgggtu  于 2023-08-07  发布在  .NET
关注(0)|答案(5)|浏览(127)

在.NET TextBox中,基于用户输入的Enter键(Keys.Enter)执行操作的最佳方式是什么?假设键输入的所有权导致对TextBox本身的Enter键的抑制(e.Handled = true)?
对于这个问题,假设所需的行为不是按下表单的默认按钮,而是应该发生的其他一些自定义处理。

zphenhs4

zphenhs41#

添加一个按键事件并捕获回车键
从编程上看,它看起来有点像这样:

//add the handler to the textbox
this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(CheckEnterKeyPress);

字符串
然后在代码中添加处理程序...

private void CheckEnterKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
        if (e.KeyChar == (char)Keys.Return)

        {
           // Then Do your Thang
        }
}

pxq42qpu

pxq42qpu2#

为了将函数与文本框的按键事件链接起来,在表单的designer.cs中添加以下代码:

this.textbox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnKeyDownHandler);

字符串
现在在cs文件中定义函数'OnKeyDownHandler',格式相同:

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{

    if (e.KeyCode == Keys.Enter)
    {
       //enter key has been pressed
       // add your code
    }

}

7tofc5zh

7tofc5zh3#

您可以将其拖放到FormLoad事件中:

textBox1.KeyPress += (sndr, ev) => 
{
    if (ev.KeyChar.Equals((char)13))
    {
        // call your method for action on enter
        ev.Handled = true; // suppress default handling
    }
};

字符串

camsedfj

camsedfj4#

如果你想让某个按钮在程序执行时处理Enter,只需将窗体的AcceptButton属性指向该按钮即可。
例如:this.AcceptButton = StartBtn;

hrysbysz

hrysbysz5#

像这样设置KeyPress事件:

this.tMRPpart.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.tMRPpart_KeyPress);

字符串
然后,您可以执行操作,包括检测事件中的“回车”键-

private void tMRPpart_KeyPress(object sender, KeyPressEventArgs e)
{
    // force any lower case characters into capitals
    if (e.KeyChar >= 'a' && e.KeyChar <= 'z')
        e.KeyChar -= (char)32;

    // If user presses return, tab to next tab stop
    if (e.KeyChar == (char)Keys.Return)
    {
        if (sender is Control)
        {
            // Move to next control
            SelectNextControl((Control)sender, true, true, true, true);
        }
    }
}


在我的例子中,我希望应用程序在用户按回车键时跳到下一个字段。

相关问题