Простая опция состоит в том, чтобы только установить AcceptButton форм на кнопку, которую Вы хотите нажатый (обычно "хорошо" и т.д.):
TextBox tb = new TextBox();
Button btn = new Button { Dock = DockStyle.Bottom };
btn.Click += delegate { Debug.WriteLine("Submit: " + tb.Text); };
Application.Run(new Form { AcceptButton = btn, Controls = { tb, btn } });
, Если это не опция, можно посмотреть на событие KeyDown и т.д., но это - больше работы...
TextBox tb = new TextBox();
Button btn = new Button { Dock = DockStyle.Bottom };
btn.Click += delegate { Debug.WriteLine("Submit: " + tb.Text); };
tb.KeyDown += (sender,args) => {
if (args.KeyCode == Keys.Return)
{
btn.PerformClick();
}
};
Application.Run(new Form { Controls = { tb, btn } });
Обычный способ сделать это должно установить Form
AcceptButton
к кнопке, которую Вы хотите "нажатый". Можно сделать, это или в разработчике VS или в коде и эти AcceptButton
может быть изменено в любое время.
Это может или не может быть применимо к Вашей ситуации, но я использовал это в сочетании с GotFocus
события для различного TextBox
es на моей форме для включения различного поведения на основе того, где пользовательский хит Входит. Например:
void TextBox1_GotFocus(object sender, EventArgs e)
{
this.AcceptButton = ProcessTextBox1;
}
void TextBox2_GotFocus(object sender, EventArgs e)
{
this.AcceptButton = ProcessTextBox2;
}
Одна вещь остерегаться при использовании этого метода состоит в том, что Вы не уезжаете эти AcceptButton
набор к ProcessTextBox1
, когда TextBox3
становится сфокусированным. Я рекомендовал бы использовать или LostFocus
событие на TextBox
es, которые устанавливают эти AcceptButton
или создают GotFocus
метод, что все средства управления, которые не используют определенное AcceptButton
вызов.
Вы можете поймать его на событии нажатия клавиши http://www.itjungles.com/dotnet/c-how-to-easily-detect-enter-key-in-textbox-and-execute-a- method