我有一个奇怪的问题(可能只是为了理解)为什么在测试应用程序中直到我按下 tab 键才显示焦点矩形。
我想显示一个带有两个单选框和两个按钮的对话框。当我显示对话框时,我希望在我的第一个单选按钮周围看到一个焦点矩形。 (以便用户可以看到焦点在哪里。)我对控件进行了排序并将 tabindex 属性设置为 0 到 4,以便它们的顺序正确。 (单选框 1 的标签索引为 0,...)
当我显示对话框时,第一个单选框具有焦点,但它周围没有焦点矩形。 (直到我按下 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
最佳答案
正如我所说,这实际上是一个用户偏好设置。
但要显示矩形,请尝试继承您自己的 RadioButton 并覆盖 ShowFocusCues
函数:
Public Class RadioWithFocus
Inherits RadioButton
Protected Overrides ReadOnly Property ShowFocusCues() As Boolean
Get
Return True
End Get
End Property
End Class
关于c# - 为什么直到按下 Tab 键才显示 Focus Rectangle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9226433/