Нажмите клавишу ввода в текстовом поле и выполните команду кнопки
Я хочу выполнить код за моей кнопкой поиска, нажав Enter. У меня есть свойство Accept Button для моей кнопки поиска. Однако, когда я помещаю свою кнопку как НЕ видимую, мой поиск не выполняется.
Я хочу иметь возможность нажать Enter в своем текстовом поле и выполнить свою кнопку, пока она не будет видна. Любые предложения были бы замечательными! Ниже приведена одна попытка моего кода в событии KeyDown
if (e.KeyCode == Keys.Enter)
{
buttonSearch_Click((object)sender, (EventArgs)e);
}
Ответы
Ответ 1
Вы можете зарегистрироваться в KeyDown-Event текстового поля, посмотреть, нажата ли клавиша Enter, а затем запустить EventHandler кнопки:
private void buttonTest_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello World");
}
private void textBoxTest_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonTest_Click(this, new EventArgs());
}
}
Ответ 2
В качестве альтернативы вы можете установить свойство .AcceptButton вашей формы. Enter автоматически создаст событие click.
this.AcceptButton = this.buttonSearch;
Ответ 3
Так как все покрывали ответы KeyDown
, как насчет использования кнопки IsDefault
на кнопке?
Вы можете прочитать этот совет для быстрого howto и что он делает: http://www.codeproject.com/Tips/665886/Button-Tip-IsDefault-IsCancel-and-other-usability
Ответ 4
Вы можете обработать событие keydown вашего элемента управления TextBox
.
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Enter)
buttonSearch_Click(sender,e);
}
Работает, даже если для свойства Visible
кнопки установлено значение false
Ответ 5
Если вы просто нажмете кнопку, когда был нажат Enter, как насчет этого?
private void textbox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonSearch.PerformClick();
}
Ответ 6
В WPF
приложениях Этот код отлично работает
private void txt1_KeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.IsKeyDown(Key.Enter) )
{
Button_Click(this, new RoutedEventArgs());
}
}
Ответ 7
вот и ты.
private void YurTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
YourButton_Click(this, new EventArgs());
}
}
Ответ 8
Если у buttonSearch нет кода и единственное действие - вернуть результат диалога:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DialogResult = DialogResult.OK;
}
Ответ 9
private void textbox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//cod for run
}
}
private void buttonSearch_Click(object sender, EventArgs e)
{
textbox1_KeyDown(sender, new KeyEventArgs(Keys.Enter));
}