18 de marzo de 2012

Pasar entre TextBox con la tecla ENTER en VS

Para pasar entre diferentes textbox con solo presionar enter primero agregare un vergo de textboxes a un formulario tal como se muestra





ahora para definir el orden en que cada textbox tomara el foco se hace lo siguiente:





y se ordena de la siguiente manera





luego en las propiedades del formulario modificamos esta parte:







y luego se coloca el siguiente código en VB para el evento KeyPress del TextBox1 en especifico

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

            If e.KeyChar = ChrW(Keys.Enter) Then
                e.Handled = True
                SendKeys.Send("{TAB}")
            End If
    End Sub




pero si lo quieren para todos los TextBox del form en VB  colocan esto en el evento Keypress del Form1


Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub







y para C# este seria el código para un textBox1 en especifico para el evento KeyPress:


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
           
        if (e.KeyChar == (char)(Keys.Enter))
       {
          e.Handled = true;
           SendKeys.Send("{TAB}");
       }
   }




pero si lo quieren para todos los TextBox del formulario este código en C#  lo colocan en el evento Keypress del Form1

private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
       if (e.KeyChar == Strings.ChrW(Keys.Enter)) {
             e.Handled = true;
             SendKeys.Send("{TAB}");
       }
}





cabe destacar que la clase SendKeys lo que hace es proporcionar metodos para enviar pulsaciones de tecla a una aplicacion, no solamente la tecla Enter.

El método Send de la clase SendKeys lo que hace es enviar una pulsación de tecla a la aplicación activa y solicita como parámetro una variable de tipo String

La tabla siguiente enumera los códigos que se pueden utilizar para especificar los caracteres que no aparecen al presionar la tecla correspondiente (como por ejemplo ENTRAR o TAB).


Tecla                                                      Código
RETROCESO                            {BACKSPACE} o {BS}
INTER                                                 {BREAK}
BLOQ MAYÚS                             {CAPSLOCK}
SUPR                                                 {CLEAR}
SUPRIMIR                                 {DELETE} o {DEL}
FLECHA ABAJO                               {DOWN}
FIN                                                      {END}
ENTRAR (teclado numérico)              {ENTER}
ENTRAR                                           {ENTER}
ESC                                         {ESCAPE} o {ESC}
AYUDA                                               {HELP}
INICIO                                               {HOME}
INSERTAR                                        {INSERT}
FLECHA IZQUIERDA                        {LEFT}
BLOQ NUM                                  {NUMLOCK}
AV PÁG                                             {PGDN}
RE PÁG                                              {PGUP}
RETORNO                                      {RETURN}
FLECHA DERECHA                        {RIGHT}
BLOQ DESPL                           {SCROLLLOCK}
TAB                                                    {TAB}
FLECHA ARRIBA                               {UP}
F1 a F15                                        {F1} a {F15}