我目前有一个使用TabControl
5的表单TabPages
。我想创建一个可以禁用特定TabPage
.
我努力了
TabPage1.Enabled = False
但它不起作用。我该怎么做呢?
我目前有一个使用TabControl
5的表单TabPages
。我想创建一个可以禁用特定TabPage
.
我努力了
TabPage1.Enabled = False
但它不起作用。我该怎么做呢?
您需要使用 TabPages 集合。在表单中添加一个按钮,然后试试这个
Private Sub Button1_Click( sender As Object, e As EventArgs) Handles Button1.Click
TabControl1.TabPages(0).Enabled =false
End Sub
它是一个基数为零的数组,因此在您的情况下,它应该是 0-4。
或者您可以从选项卡的文本中访问它
Private Sub Button2_Click( sender As Object, e As EventArgs) Handles Button2.Click
Dim tabPage As TabPage
For Each tabPage In TabControl1.TabPages
If tabPage.Text ="TabPage2"
tabPage.Enabled =False
End If
Next
End Sub
目前,以下两个代码块执行相同的操作:禁用该 TabPage 上的所有控件(设置 Control.Enabled = False)。选项卡本身仍然可见并且可以从 TabControl 中选择,它不是隐藏的。该选项卡是可选的,并且所有元素都显示为禁用。
TabMyTab.Enabled = False
MyTabControl.TabPages(4).Enabled = False
其中 TabPages(4) 是 TabControl 集合中的第 5 个。
如果这是您的意图,您的初始代码应该可以工作。
如果你想禁用类似于 ie 的选项卡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
将您自己的值替换为您的项目的“UnselectableTab”和“TabControlName”。
您可以结合使用禁用选项卡,这样如果您更改代码中启用或禁用的选项卡,则行为是动态的。
Private Sub TabControl1_Deselected(sender As Object, e As TabControlEventArgs) Handles TabControl1.Deselected
PreviousTab = e.TabPage
End Sub
.
Private Sub TabControl1_Selected(sender As Object, e As TabControlEventArgs) Handles TabControl1.Selected
If Not e.TabPage.Enabled Then
TabControl1.SelectedTab = PreviousTab
End If
End Sub
Enabled
您可以通过设置其属性来禁用选项卡:
TabControl1.TabPages("tbPage1").Enabled = False