我有一个奇怪的问题(可能只是为了理解)为什么在测试应用程序中,直到我按Tab键才显示焦点矩形。为什么焦点矩形不显示,直到按Tab键?
我想用两个射频盒和两个按钮来显示对话框。当我显示对话框时,我想看看我的第一个单选按钮的重点。 (以便用户可以看到重点在哪里。)我订购了控件并将tabindex属性从0设置为4,以便它们按正确的顺序排列。 (radiobox 1有tabindex 0,...)
当我显示对话框时,第一个radioobox有焦点,但它没有焦点rect在它周围。 (直到我按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
恩...我忘了说,说我使用的是Windows 7(64位) – AlexS 2012-02-10 12:14:51
坚韧错误修复,没有我尝试工作。 – 2012-02-10 13:56:22
我做了一些(很多)更多的研究,发现向表单发送一个“Tab”键调用Control.ChangeUICues事件,其中标志UICuesEventArgs.ShowFocus设置为true。 (http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.changeuicues.aspx) 处理完此事件后,焦点矩形可见。有谁知道,我怎么能直接触发/调用这个事件?我没有找到任何属性,我可以将其设置为true ... – AlexS 2012-02-10 14:51:25