VB.Net隐藏标签页

时间:2012-01-29 18:40:31

标签: vb.net winforms

我在这里看到了一些关于如何隐藏tabcontrol中的标签的讨论,但它们似乎都在C或某些变体中。我还没有看到一个用于vb.net(我不能做C)

我想要做的是隐藏或禁用所有部分标签,直到用户登录为止。 我整理了登录和注销。我需要做的就是添加代码以启用/禁用某些选项卡,直到用户登录。

任何人都知道这样做的好方法吗?

WinForms btw

3 个答案:

答案 0 :(得分:9)

您只需通过TabPages集合在TabControl中添加和删除TabPages

TabControl1.TabPages.Add(myTabPage)

并删除它:

TabControl1.TabPages.Remove(myTabPage)

注意:删除TabPage不会将其删除,只会将其从TabPage集合中删除。

答案 1 :(得分:0)

只需通过设置Visible属性

隐藏整个TabControl即可

答案 2 :(得分:0)

目前,以下代码块禁用该TabPage上的所有控件(设置Control.Enabled = False)。选项卡本身仍然可见并可从TabControl中选择,它不会被隐藏。该选项卡是可选的,所有元素都显示为禁用。

TabMyTab.Enabled = False

如果要禁用与button.Enabled = False类似的选项卡(不允许使用控件),则需要执行不同的操作,因为禁用TabPage,如上面的代码中禁用该选项卡中的所有控件。如果这是你想要的,继续阅读。很多程序员建议使用TabControl来禁止通过选择不同的或以前选择的选项卡来选择选项卡。这是我所知道的最有效的方式。我将按如下方式实现:

Private PreviousTab As New TabPage
Private CurrentTab As New TabPage

Private Sub TabControlName_Deselected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles TabControlName.Deselected
        PreviousTab = e.TabPage
End Sub

Private Sub TabControlName_Selected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles TabControlName.Selected
        CurrentTab = e.TabPage
        If (PreviousTab.Name <> CurrentTab.Name) And (CurrentTab.Name = UnselectableTab.Name) Then
            MessageBox.Show("Tab disabled.", "Selection Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            TabControlName.SelectedTab = PreviousTab
        End If
End Sub

将自己的值替换为&#34; UnselectableTab&#34;和&#34; TabControlName&#34;为你的项目。