.NET TextBox - Handling the Enter Key

2019-01-20 07:11发布

What is definitively the best way of performing an action based on the user's input of the Enter key (Keys.Enter) in a .NET TextBox, assuming ownership of the key input that leads to suppression of the Enter key to the TextBox itself (e.Handled = true)?

Assume for the purposes of this question that the desired behavior is not to depress the default button of the form, but rather some other custom processing that should occur.

3条回答
你好瞎i
2楼-- · 2019-01-20 07:44

Add a keypress event and trap the enter key

Programmatically it looks kinda like this:

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

Then Add a handler in code...

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

        {
           // Then Do your Thang
        }
}
查看更多
▲ chillily
3楼-- · 2019-01-20 07:46

Inorder to link the function with the key press event of the textbox add the following code in the designer.cs of the form:

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

Now define the function 'OnKeyDownHandler' in the cs file of the same form:

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{

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

}
查看更多
爱情/是我丢掉的垃圾
4楼-- · 2019-01-20 07:55

You can drop this into the FormLoad event:

textBox1.KeyPress += (sndr, ev) => 
{
    if (ev.KeyChar.Equals((char)13))
    {
        // call your method for action on enter
        ev.Handled = true; // suppress default handling
    }
};
查看更多
登录 后发表回答