Cambiar entre textbox al pulsar enter

22/07/2009 - 21:27 por RP | Informe spam
Hola que tal, bueno mi interrogante es la siguiente, tengo un textbox1 y otro
textbox llamado textbox2, lo que deseo hacer, es que al presionar la tecla
Enter en el textbox1, el focus pase al textbox2, como puedo hacer eso,
espero que me hayan entendido la interrogante, agradecere la ayuda que me
puedan brindar, gracias
 

Leer las respuestas

#1 SoftJaén
22/07/2009 - 22:18 | Informe spam
"RP" escribió:

tengo un textbox1 y otro textbox llamado textbox2, lo que deseo hacer, es
que
al presionar la tecla Enter en el textbox1, el focus pase al textbox2,
como puedo hacer eso,



Hola:

Si tu intención es pasar de un control TextBox a otro pulsando la tecla
Enter, te puede venir bien sobrescribir el método OnKeyDown.

Añade el siguiente procedimiento a tu formulario:

protected override void OnKeyDown(KeyEventArgs e)
{
// ¿Se ha pulsado la tecla Enter?
if (e.KeyData != Keys.Enter)
{
base.OnKeyDown(e);
return;
}

/* Desplazar el foco entre los distintos controles
mediante la tecla Return. El código está basado en un
ejemplo de Francesco Balena.

Iniciar todos los controles seleccionados actualmente.
*/
Control ctrl = this.ActiveControl;

bool b = false;

do
{
// Obtener el siguiente control hacia delante en el
// orden de tabulación.
ctrl = this.GetNextControl(ctrl, true);

// GetNextControl(ctrl, False) puede devolver Nothing si
// es el primer control.
if ((ctrl != null) && (ctrl.CanFocus) && (ctrl.TabStop))
{
// Si el control puede recibir el foco, se lo doy.
ctrl.Focus();
b = true;
}
} while (b==false);

base.OnKeyDown(e);
}

Pero para que ésto funcione, tienes que establecer el valor true a la
propiedad KeyPreview del formulario, por ejemplo, en el evento Load:

private void Form1_Load(object sender, EventArgs e)
{
this.KeyPreview = true;
}

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares