2008-10-02 24 views

Respuesta

2

El formulario tiene una propiedad KeyPreview que puede utilizar para interceptar la pulsación de tecla.

154

Si configura la propiedad AcceptButton de su formulario en uno de los botones del formulario, obtendrá ese comportamiento de forma predeterminada.

De lo contrario, establezca la propiedad KeyPreview en True en el formulario y maneje su evento KeyDown. Puede verificar la tecla Intro y tomar la acción necesaria.

+1

¡Eso fue perfecto !, gracias Matt. :) – Bravo

+5

y no se olvide de CancelButton para manejar la tecla de Escape – WholeLifeLearner

+1

Awesome! Necesito saber mejor mi Framewrok;) – Jack

0

Establezca el atributo KeyPreview en su formulario en True, luego use el evento KeyPress en su nivel de formulario para detectar la tecla Intro. En la detección, llame al código que tenga para el botón "enviar".

20

Puede designar un botón como "AcceptButton" en las propiedades del Formulario y que capturará las pulsaciones de tecla "Entrar" en el formulario y lo encaminará a ese control.

Ver this MSDN article y tenga en cuenta las pocas excepciones recogidas en ella (líneas múltiples cuadros de texto, etc.)

+0

Gracias por el enlace, esas excepciones son las que me detienen. – ubiquibacon

8

Como se dijo anteriormente, establece AcceptButton la propiedad de su forma de uno de sus botones y establecer el DialogResult propiedad para ese botón al DialogResult.OK, para que la persona que llama pueda saber si el diálogo fue aceptado o rechazado.

5

Puede suscribirse al evento KeyUp del cuadro de texto.

private void txtInput_KeyUp(object sender, KeyEventArgs e) 
{ 

    if(e.KeyCode == Keys.Enter) 
     DoSomething(); 

} 
+1

Justo lo que estaba buscando. ¡Tengo el botón dialogresult establecido en OK y no quería escribir código innecesario para que ENTER funcione! – Kristjan1215

12
private void textBox_KeyDown(object sender, KeyEventArgs e) { 
    if (e.KeyCode == Keys.Enter){ 
     button.PerformClick(); 
    } 
} 
0
if (e.KeyCode.ToString() == "Return") 
    { 
     //do something 
    } 
0

Utilice simplemente

this.Form.DefaultButton = MyButton.UniqueID; 

** Deja tus botón ID en lugar de 'Mi botón'.

Cuestiones relacionadas