在VB6中切换单选按钮之间的选项卡

6
我有一个包含六个互斥单选按钮和一个命令按钮的表单。
我已经为每个单选按钮分配了不同的tab-index,但在运行时按Tab键时焦点跳过了单选按钮。
那么如何通过按TAB将焦点给另一个单选按钮呢?

4
这是预期的操作行为。要在同一单选框中移动焦点,请使用箭头键。 - Brian Hooper
如果可能的话,我会给单选按钮的标题设置相同的键盘快捷键。这样可以使焦点在选项之间循环。我不知道这是否违反了任何UI惯例... - Dabblernl
1
@BrianHooper 您是正确的。值得强调的是,使用箭头键也会更改单选按钮的值。这是预期的行为,并符合Windows用户体验指南,因此应该符合用户的期望。 - MarkJ
2个回答

3

正如其他人所说,这是预期的行为。如果你真的想要实现这个功能,我唯一能想到的方法是将每个单选按钮放置在一个单独的图片框中(BorderStyle = None, TabStop = False)。这样就可以工作了,但你将无法使用箭头键在单选按钮之间移动,只能使用Tab键。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接