将焦点设置在选项卡上

时间:2011-07-12 16:04:13

标签: vb.net winforms

我在一个名为Wafer Map的窗体中有一个标签,它有三个子标签。第一个子选项卡是名为Map,并有一个Load和Skip按钮。我正在尝试将焦点设置在“加载”按钮上的“晶圆”子选项卡上。这是我尝试使用的以下代码。

Private Sub Load_Wafer_Layout_Map_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Load_Wafer_Layout_Map.Click
    Wafer_Info.Enabled = True
    Wafer_Info.Show()
End Sub

Wafer_Info.Enabled = True用于启用“晶圆”选项卡上的所有控件,并在单击按钮时正常工作。我已经尝试使用.Focus()和.Show()将焦点带到下一个标签但我没有任何运气转换。有人有什么建议吗?

4 个答案:

答案 0 :(得分:6)

设置它:

tabControl.SelectedTab = yourTab

在选项卡控件选项卡页面上,只需确保命名您尝试引用的选项卡。另请参阅 MSDN TabControl.SelectedTab

答案 1 :(得分:3)

对我有用的代码是Tab_WaferMap.SelectTab(1)。 Tab_WaferMap是我的主选项卡,1是我想要显示的子选项卡的索引

答案 2 :(得分:3)

我遇到了这个帖子,因为我正在寻找解决自己焦点问题的方法。我有一个带有许多TabPages的TabControl。由于内容溢出,每个TabPage都设置为自动滚动。我遇到的问题是如果TabPage没有焦点,鼠标滚轮将无法正常工作。由于每个选项卡都没有事件,因此单击它会使每个TabPage的焦点设置为挑战。这并不难,但也是一项挑战。所以,这是我的代码(假设自动滚动为真)。

在表单加载上将焦点设置为主TabPage:

Private Sub frmParent_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    TabControl1.TabPages(0).Focus()
End Sub

通过获取索引然后设置焦点将焦点设置为当前TabPage。 这是由TabControl1.SelectedIndexChange事件触发的。

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    Dim intTabIndex As Integer = TabControl1.SelectedIndex
    TabControl1.TabPages(intTabIndex).Focus()
End Sub

我希望有人觉得这很有用。这对我来说非常有用。

约书亚

答案 3 :(得分:0)

您还可以使用(基于零的)数值设置标签(和子标签)的Selected Index

TabParent.SelectedIndex = 3
TabSub.SelectedIndex=2