当选项卡页首次出现时,我似乎无法在文本框中获得输入焦点(我正在使用 Windows 窗体、VB.NET 3.5)。
我在选项卡页的面板上有一个文本框,我希望当选项卡页出现时焦点位于文本框上。我希望用户能够立即开始在聚焦的文本框中键入内容,而无需单击文本框。我按照我想要的顺序设置了制表位,文本框是第一个制表位。选项卡停止工作,除非当选项卡页出现时焦点不在文本框上,即选项卡顺序中的第一个文本框。
在选项卡页的 Enter 事件处理程序中,我调用文本框的 Focus 方法,但它返回 False 并且不执行任何操作,也没有错误消息。我知道我可以访问文本框,因为
在代码中的同一点我可以设置文本框的文本。
如果重要的话,标签页的布局有点复杂:
frmFoo/TabControl1/TabPageX/Panel1/Panel2/TextBox1
我想将焦点设置在 TextBox1 上。
- 将焦点集中在所需文本框上的最佳方法是什么?
- 如果设置焦点是最好的方法,为什么 textbox.Focus() 方法会失败?
我假设您正在尝试在表单加载事件处理程序中设置焦点?如果是这样,您需要做一个Me.Show()
在设置焦点之前实际创建屏幕控件。大致如下:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Show()
Application.DoEvents()
TextBox1.Focus()
End Sub
如果你不这样做Me.Show()
,直到加载事件完成后才会显示表单。
对于选项卡控件,处理_SelectedIndexChanged
event:
Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As System.EventArgs) _
Handles TabControl1.SelectedIndexChanged
If TabControl1.SelectedTab.Name = "TabPage1" Then
TextBox2.Focus()
End If
If TabControl1.SelectedTab.Name = "TabPage2" Then
TextBox4.Focus()
End If
如果选择的第一个字段是选项卡控件上的文本框,您仍然需要在加载事件中设置初始焦点,如上所示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)