Tabulación entre botones de radio en VB6

Tengo un formulario que consta de seis botones de radio dentro de un marco que son mutuamente excluyentes y un botón de comando.

Ya le di un índice de tabulación diferente a cada botón de radio, pero en el tiempo de ejecución al presionar el enfoque de tabulación se saltó de los botones de radio.

Entonces, ¿cómo enfocar otro botón de radio presionando TAB?

preguntado el 02 de julio de 12 a las 06:07

Ese es el comportamiento previsto. Para mover el foco entre los botones en el mismo cuadro de radio, use las teclas de flecha. -

Lo que hago (si es posible) es dar a los subtítulos de los botones de radio el mismo método abreviado de teclado. Esto hará que el foco cambie entre las opciones. Sin embargo, no sé si esto viola alguna convención de la interfaz de usuario... -

@BrianHooper Tienes razón. Vale la pena enfatizar que el uso de las teclas de flecha también cambia los valores del botón de opción. Este es el comportamiento previsto y cumple con las pautas de experiencia del usuario de Windows, por lo que debe coincidir con las expectativas del usuario:

2 Respuestas

Como otros han dicho anteriormente, este es un comportamiento intencionado. Si realmente desea lograr esto, la única forma en que puedo pensar en hacerlo es colocar cada botón de opción en un cuadro de imagen separado (BorderStyle = None, TabStop = False). Esto funcionará, pero no podrá usar las teclas de flecha para moverse entre los botones de radio, solo para tabular.

Respondido 02 ago 12, 15:08

Private Sub Option1_KeyPress(KeyAscii As Integer)
   If KeyAscii = 9 Then
      Option2.SetFocus
   End If
End Sub

KeyAscii=9 es el código de la tecla Tabulador. Pero debe hacerlo para todos sus botones de opción.

Si agrega sus botones de opción que pertenecen al mismo botón de opción que tiene índices 0, 1, 2, puede hacerlo así:

Private Sub Option1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 9 Then
    If Index < Option1.Count - 1 Then
        Option1(Index + 1).SetFocus
    Else
        Option1(0).SetFocus
    End If
End If
End Sub

Respondido 05 ago 12, 05:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.