c# - tecla - Presione enter en el cuadro de texto para ejecutar el comando de botón
evento para tecla enter c# (7)
Quiero ejecutar el código detrás de mi botón de búsqueda presionando Enter . Tengo la propiedad del botón Aceptar en mi botón de búsqueda. Sin embargo, cuando coloco mi botón como NO visible, mi búsqueda no se ejecuta.
Quiero poder presionar Enter en mi cuadro de texto y ejecutar mi botón mientras no esté visible. ¡Cualquier sugerencia seria genial! A continuación hay un intento en mi código en KeyDown Event
if (e.KeyCode == Keys.Enter)
{
buttonSearch_Click((object)sender, (EventArgs)e);
}
Alternativamente, puede establecer la propiedad .AcceptButton de su formulario. Enter creará automáticamente un evento de clic.
this.AcceptButton = this.buttonSearch;
Como todo el mundo cubrió las respuestas de KeyDown
, ¿qué hay de usar IsDefault
en el botón?
Puede leer este consejo para obtener un breve resumen y lo que hace: http://www.codeproject.com/Tips/665886/Button-Tip-IsDefault-IsCancel-and-other-usability
En aplicaciones WPF
Este código funciona perfectamente
private void txt1_KeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.IsKeyDown(Key.Enter) )
{
Button_Click(this, new RoutedEventArgs());
}
}
Puede Hanle KeyDown
Event de su control TextBox
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Enter)
buttonSearch_Click(sender,e);
}
Funciona incluso el botón Visible
Property establecido en False
Puede registrarse en KeyDown-Event del Textbox, observe si la tecla presionada es Enter y luego ejecute el EventHandler del botón:
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());
}
}
Si solo vas a hacer clic en el botón cuando presionaste Enter, ¿qué tal esto?
private void textbox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonSearch.PerformClick();
}
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));
}