none
recorrer un formulario mediante tabulador RRS feed

  • Pregunta

  • Al ir agregando botones/combobox/... a un formulario me encuentro que cuando los quiero recorrer con <tabulador> no es el orden que me gustaría que fueran recorridos.

    Existe alguna forma de cambiar el orden de ser recorridos al apretar <tabulador> o <enter>

    En mi formulario quisiera que el orden fuera el siguiente, pero al ir agregando las herramientas no quedo en este orden :

    Ingreso de nombre del usuario (mediante un combobox)

    ingreso de password (mediante un text box)

    boton para ocultar/visualizar la password

    ingreso de la empresa (mediante un combobox)

    boton para entrar a otra ventana donde se encuentra el menu principal

    boton para salir del programa



    lunes, 28 de enero de 2013 19:49

Respuestas

  • Hola.

    Puedes trabajar con la propiedad TabIndex que posee Cada Control, en ella vas definiendo el orden en el cual el foco se va a ir moviendo por cada control cuando presiones la tecla TAB.

    Con el ENTER  tienes que agregar código, quiza en el evento KeyPress o KeyDown.


    Luis Muñoz Hidalgo
    Mi Blog
    Desarrollador de Software
    Trujillo-Perú


    lunes, 28 de enero de 2013 19:54
  • Existe alguna forma de cambiar el orden de ser recorridos al apretar <tabulador> o <enter>

    pero porque no defines la propiedad Tabindex de forma correect ane l formaulario para recorrerlo secuancialmente

    con el boton Tab puede ir pasando de uno a otro pero debes darle un arden correcto para que funcione, si defines la secuancoa numerica de la propeidad Tabindex de cada control del form puede lograrlo

    puede definirlo de forma visual imagen

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    lunes, 28 de enero de 2013 19:58
  • Bien buscando y buscando encontré que para que determinado control sea el primero debe tener tabindex = 0, y que hay que asignarle el focus.

    Por otro lado los controles que estan sobre otros controles, hay que verificar que el de abajo no tenga tabindex en 0, tenia un panel con tabindex en 0 y sobre él tenia un button con tabindex en 6, pero se ejecutaba primero pues habia empezado a numerar de 1, entonces habia un 0 que esta antes del 1.


    • Marcado como respuesta macgyber martes, 29 de enero de 2013 7:24
    martes, 29 de enero de 2013 7:23

Todas las respuestas

  • Hola.

    Puedes trabajar con la propiedad TabIndex que posee Cada Control, en ella vas definiendo el orden en el cual el foco se va a ir moviendo por cada control cuando presiones la tecla TAB.

    Con el ENTER  tienes que agregar código, quiza en el evento KeyPress o KeyDown.


    Luis Muñoz Hidalgo
    Mi Blog
    Desarrollador de Software
    Trujillo-Perú


    lunes, 28 de enero de 2013 19:54
  • Existe alguna forma de cambiar el orden de ser recorridos al apretar <tabulador> o <enter>

    pero porque no defines la propiedad Tabindex de forma correect ane l formaulario para recorrerlo secuancialmente

    con el boton Tab puede ir pasando de uno a otro pero debes darle un arden correcto para que funcione, si defines la secuancoa numerica de la propeidad Tabindex de cada control del form puede lograrlo

    puede definirlo de forma visual imagen

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    lunes, 28 de enero de 2013 19:58
  • Al poner el orden correcto el botón "6" que es el botón que está más arriba es el primero en estar activo, luego recorro los siguientes y luego del último viene el ''1".

    Supuse que en las propiedades del formulario le podría indicar cual es el botón para iniciar la secuecia, pero no lo encontré, asumo que deberé escribir código. 

    Ayuda al respecto ?

    lunes, 28 de enero de 2013 21:36
  • hay un add in del VS ide que se llama MZ Tools que te ayuda a organizar los tabindex Automaticamente! de los controles.

    y si te refieres a ir pasando de control en control con enter puedes consultar este thread que inicie.

    http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/d15c2a00-f143-41f9-9dfb-f586537f09ea

    lunes, 28 de enero de 2013 22:47
  • El MZ Tools no funciona con versiones express por lo que pude ver.

    Sigue pendiente como le informo cual es el primer control ?

    martes, 29 de enero de 2013 1:32
  • Bien buscando y buscando encontré que para que determinado control sea el primero debe tener tabindex = 0, y que hay que asignarle el focus.

    Por otro lado los controles que estan sobre otros controles, hay que verificar que el de abajo no tenga tabindex en 0, tenia un panel con tabindex en 0 y sobre él tenia un button con tabindex en 6, pero se ejecutaba primero pues habia empezado a numerar de 1, entonces habia un 0 que esta antes del 1.


    • Marcado como respuesta macgyber martes, 29 de enero de 2013 7:24
    martes, 29 de enero de 2013 7:23
  • Hola

    En Visual Basic hay un botón en la barra de herramientas, pero en C# no acabo de encontrarlo, pero puede acceder a través de la barra de menús.
    Barra menú -> Ver -> Orden de tabulación.

    Como puedes ver en la imagen a los controles se visualiza el orden te tabulación, solo tienes que ir haciendo click en cada control en el orden que tu quieras


    Saludos desde Barcelona.

    martes, 29 de enero de 2013 11:57