Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NET TextBox - Handling the Enter Key

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.

like image 361
Mark Allanson Avatar asked Aug 24 '10 16:08

Mark Allanson


3 Answers

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
        }
}
like image 128
It Grunt Avatar answered Nov 15 '22 19:11

It Grunt


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
    }

}
like image 25
R.S.K Avatar answered Nov 15 '22 21:11

R.S.K


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
    }
};
like image 8
Nate Avatar answered Nov 15 '22 20:11

Nate