为什么在按Tab键之前不会显示Focus Rectangle?

Ale*_*exS 5 .net c# vb.net winforms

我有一个奇怪的问题(可能只是理解)为什么在测试应用程序中,直到我按Tab键才显示焦点rect.

我想显示一个带有两个radioboxes和两个按钮的对话框.当我显示对话框时,我希望在我的第一个单选按钮周围看到焦点.(这样用户就可以看到焦点所在的位置.)我对控件进行了排序,并将tabindex属性设置为0到4,这样它们的顺序正确.(radiobox 1有tabindex 0,...)

当我显示对话框时,第一个radiobox具有焦点,但它周围没有焦点矩形.(直到我按Tab键.)

我创建了一个完全空的winforms项目(Visual Studio 2010),添加了控件并启动它.所以没有什么特别的.

有人能给我一个暗示我做错了什么吗?

对不起,这是我的示例代码:

Public Class Form1

Private Sub Button1_Click(sender As System.Object, _
  e As System.EventArgs) _
    Handles Button1.Click

    Me.Close()
End Sub

Private Sub Button2_Click(sender As System.Object, _
  e As System.EventArgs) _
    Handles Button2.Click

    Me.Close()
End Sub

Private Sub Form1_Shown(sender As Object, _
   e As System.EventArgs) _
  Handles Me.Shown

    RadioButton1.Focus()
    RadioButton1.Select()
    SendKeys.SendWait("{TAB}")
    SendKeys.SendWait("+{TAB}")

End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

Lar*_*ech 5

正如我评论的那样,这实际上是用户偏好设置.

但要显示矩形,请尝试继承您自己的RadioButton并覆盖该ShowFocusCues函数:

Public Class RadioWithFocus
  Inherits RadioButton

  Protected Overrides ReadOnly Property ShowFocusCues() As Boolean
    Get
      Return True
    End Get
  End Property

End Class
Run Code Online (Sandbox Code Playgroud)