Tecla Enter Por Tecla Tab

20/08/2003 - 11:32 por Miguel Genol | Informe spam
Que debo hacer para que en un formulario WinForm al pulsar la tecla ENTER
pase el foco al siguiente control. Como si hubiese pulsado la tecla TAB.
La logica del proceso parece muy sencilla .
Atrapar cuando han pulsado la tecla ENTER (Con el evento KeyPress)

Conseguir que control es el que tiene actualmente el foco
supongamos que este sea
Control CtlFocusActual = ??????? ;

Pasar el foco al siguiente control mediante la setencia
Control myCtl=this.GetNextControl(CtlFocusActual,true) ;
if (myCtl != null) myCtl.Focus() ;

Pero como se cual es el control que actualmente tiene el foco

Alguna idea ????

Preguntas similare

Leer las respuestas

#1 Tristan
21/08/2003 - 12:35 | Informe spam
No necesitas GetNextControl. Puedes usar simplemente la clase SendKeys:

Pon en tu formulario la propiedad KeyPreview = True, y añade el tratamiento
del evento KeyPress.

private void Form1_KeyPress(object sender,
System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar == '')
SendKeys.Send("{Tab}");
}

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#2 Miguel Genol
21/08/2003 - 16:37 | Informe spam
Muchas gracias Tristan.Lo de SendKeys es un gran invento Casi todo funciona.
Un pero todavia.
Cuando uno de los controles del formulario es un ComboBox con el estilo
DropDown=DropDown. no funciona
No se dispara el evento Form1_KeyPress por tanto no puede recoger la tecla
enter ni ninguna.
Algun remedio ???

"Tristan" escribió en el mensaje
news:eKugl$
No necesitas GetNextControl. Puedes usar simplemente la clase SendKeys:

Pon en tu formulario la propiedad KeyPreview = True, y añade el


tratamiento
del evento KeyPress.

private void Form1_KeyPress(object sender,
System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar == '')
SendKeys.Send("{Tab}");
}

Juan Carlos Badiola
MVP - C#


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida