.NET TextBox - 处理Enter键

Mar*_*son 34 .net textbox winforms

什么是基于用户Keys.Enter在.NET中输入Enter键()的最佳执行方式TextBox,假设键输入的所有权导致对TextBox本身的Enter键的抑制(e.Handled = true) )?

假设出于此问题的目的,期望的行为不是按下表单的默认按钮,而是按下应该发生的其他一些自定义处理.

It *_*unt 50

添加按键事件并捕获回车键

以编程方式看起来有点像这样:

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

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

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

        {
           // Then Do your Thang
        }
}
Run Code Online (Sandbox Code Playgroud)

  • 演员现在似乎并不多余; 它拒绝编译没有. (10认同)

R.S*_*S.K 19

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

 this.textbox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnKeyDownHandler);
Run Code Online (Sandbox Code Playgroud)

现在在相同格式的cs文件中定义函数'OnKeyDownHandler':

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{

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

}
Run Code Online (Sandbox Code Playgroud)


Nat*_*ate 6

您可以将其放入FormLoad事件:

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

  • 那么最好的方法是什么? (2认同)