Reputation: 175
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
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:
Upvotes: 28
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
Keys.YOURKEY
.Upvotes: 1
Reputation: 59
In your Form properties, set AcceptButton = yourButton, That's it.
Upvotes: 4
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
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
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
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