2012-07-02 10 views
6

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

Ya he dado diferentes índices de pestañas a cada botón de radio, pero en el tiempo de ejecución presionando el tabulador saltado de los botones de opción.

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

+4

Ese es el comportamiento previsto. Para mover el foco entre los botones en la misma caja de radio, use las teclas de flecha. –

+0

Lo que hago (si es posible) es darle a los títulos de los botones de radio el mismo atajo de teclado. Esto causará que el foco se mueva entre las opciones. No sé si esto viola las convenciones de UI ... – Dabblernl

+1

@BrianHooper Estás en lo cierto. Vale la pena enfatizar que el uso de las teclas de flecha también cambia los valores del botón de radio. Este es el comportamiento previsto y cumple con las directrices de experiencia de usuario de Windows, por lo que debe coincidir con las expectativas del usuario – MarkJ

Respuesta

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

KeyAscii = 9 es el código para la tecla Tab. Pero debes hacerlo para todos tus botones de radio.

Si se agregan los botones de radio que pertenecen al mismo botón de radio que tiene índices 0, 1, 2 puede hacerlo de esta manera:

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 
3

Como han dicho otros, este es el comportamiento previsto. Si realmente desea lograr esto, entonces la única forma en que puedo pensar es colocar cada botón de radio 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 tabulando.