2012-07-02 8 views
6

私は相互に排他的なフレーム内の6つのラジオボタンと1つのコマンドボタンで構成されるフォームを持っています。VB6のラジオボタンの間のタブ

各ラジオボタンにはすでに異なるタブインデックスが割り当てられていましたが、実行時にラジオボタンからスキップされたタブフォーカスを押すと、

TABキーを押して別のラジオボタンにフォーカスする方法は?

+4

を。同じラジオボックス内のボタン間でフォーカスを移動するには、矢印キーを使用します。 –

+0

私は(可能であれば)ラジオボタンのキャプションに同じキーボードショートカットを与えます。これにより、フォーカスがオプション間で繰り返されます。私はこれがどんなUIコンベンションにも違反するかどうかわかりません。 – Dabblernl

+1

@BrianHooperあなたは正しいです。矢印キーを使用するとラジオボタンの値も変更されることを強調しておきましょう。これは意図した動作であり、Windowsユーザーエクスペリエンスのガイドラインに準拠しているため、ユーザーの期待と一致する必要があります – MarkJ

答えて

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

KeyAscii = 9はTabキーのコードです。しかし、すべてのラジオボタンでそれを行う必要があります。あなたはインデックス0、1、2を有する同一のラジオボタンに属するあなたのラジオボタンを追加した場合

あなたはこのようにそれを行うことができます。意図した動作をある

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

他の人が上述したように、これは意図された動作である。あなたが本当にこれを達成したいならば、私がこれを行うと考えることができる唯一の方法は、別の画像ボックス(BorderStyle = None、TabStop = False)に各ラジオボタンを配置することです。これは動作しますが、ラジオボタンの間を移動するために矢印キーを使用することはできず、タブで移動することはできません。

関連する問題