winforms 在选项卡上设置焦点

x7rlezfr  于 2023-04-21  发布在  其他
关注(0)|答案(5)|浏览(132)

我有一个名为Wafer Map的窗口窗体中的选项卡,它有三个子选项卡。第一个子选项卡是所谓的Map,并有一个加载和跳过按钮。我试图在加载按钮单击时将焦点设置在Wafer子选项卡上。这是我尝试使用的以下代码。

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用于启用Wafer选项卡上的所有控件,并在单击按钮时正常工作。我曾尝试使用.Focus()和.Show()将焦点带到下一个选项卡,但我没有任何运气切换。有人有任何建议吗?

gywdnpxw

gywdnpxw1#

只需设置它:

tabControl.SelectedTab = yourTab

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

ylamdve6

ylamdve62#

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

zf2sa74q

zf2sa74q3#

我遇到了这个线程,因为我正在寻找一个解决我自己的焦点问题。我有一个TabControl与许多TabPage。每个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

我希望有人觉得这有用。这对我很有用。
约书亚

1u4esq0p

1u4esq0p4#

您还可以使用(从零开始)数值设置选项卡(和子选项卡)的Selected Index

TabParent.SelectedIndex = 3
TabSub.SelectedIndex=2
bxfogqkk

bxfogqkk5#

使用示例

私有子BtnGoprint_Click(sender As System.Object,e As System.EventArgs)处理BtnGoprint。单击If(txtggsett.Text.Length =“0”)And(txtsunAR.Text.Length =“0”)And(txtggsett.Text.Length =“0”)Then

MsgBox("Calculate first, then print," & vbCrLf & "DISABLED TO AVOID ERRORS", MsgBoxStyle.Exclamation, "NESSUN CALCOLO")
        TabControl1.SelectedIndex = 0
    Else
        TabControl1.SelectedIndex = 11
        Btnprint.Show()
        Btnprint.Focus()

相关问题