user2867035
user2867035

Reputation: 175

C# Making it so the Enter Key behaves as if a button has been pressed

How do I code it so that when the enter key has been pressed it behaves as if a button on the existing form has been pressed?

Let's say the button on the form makes it so a display message of hello shows up

 private void buttonHello_Click(object sender, EventArgs e)
{
    MessageBox.Show("Hello");
}

How do I make it so when the enter key is pressed it does the same thing (for the life of me I can't remember and it's probably really simple and I'm being really dumb)

Upvotes: 15

Views: 54051

Answers (7)

Idle_Mind
Idle_Mind

Reputation: 39122

WinForms? If yes, select the FORM. Now in the Properties Pane (bottom right of the screen by default) change the AcceptButton property to "buttonHello".

See Form.AcceptButton:

Gets or sets the button on the form that is clicked when the user presses the ENTER key.

Here's what it looks like in the Properties Pane:

enter image description here

Upvotes: 28

Marco Concas
Marco Concas

Reputation: 1892

For WinForms:

using System.Windows.Forms; // reference

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter)
    {
        // do something
    }
}

For WPF:

using System.Windows.Input; // reference

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        // do something
    }
}

Notes

  • This example is for Enter button, you can easy change that changing Keys.YOURKEY.
  • You need to add first the event in your form or window.

Upvotes: 1

In your Form properties, set AcceptButton = yourButton, That's it.

Upvotes: 4

Felice Pollano
Felice Pollano

Reputation: 33242

You are driving toward the "Magic Button" antipattern, and the symptom is that you want to drive the butto from somewhere else. Insulate the behavior you want from the button in some way ( a member function could work ) and then call the same function from any point you like. If you really just want to reply to the enter key, best way is, as suggested by @Idle_mind, use the AcceptButton.

Upvotes: 0

Karl Anderson
Karl Anderson

Reputation: 34846

Capture the Enter key down event, like this:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter){
        button.PerformClick();
    }
}

Upvotes: 9

Jonesopolis
Jonesopolis

Reputation: 25370

add a Key Down event handler to your form. Then check if the enter key has been pressed

private void form_KeyDown(object sender, KeyEventArgs e)
{
    if(e.KeyCode == Keys.Enter)
        buttonHello.PerformClick();
}

Upvotes: 2

Rahul Tripathi
Rahul Tripathi

Reputation: 172378

Are you looking for something like this:-

private void tb_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter)        
        button.PerformClick();
}

Upvotes: 0

Related Questions