我会创建一个复选框列表并在关闭的选项卡上删除相应的复选框。然后,当您要更改属性时,只需遍历列表即可。
Private lstCheck As List(Of CheckBox)
Private Sub CreateCheckBoxesList()
lstCheck = New List(Of CheckBox) From {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7}
End Sub
Private Sub CloseTab(TabIndexClosed As Integer)
Select Case TabIndexClosed
Case 0
lstCheck.Remove(CheckBox1)
lstCheck.Remove(CheckBox2)
Case 1
lstCheck.Remove(CheckBox3)
lstCheck.Remove(CheckBox4)
Case 2
lstCheck.Remove(CheckBox5)
lstCheck.Remove(CheckBox6)
lstCheck.Remove(CheckBox7)
End Select
End Sub
Private Sub ChangeCheckBoxColor()
For Each chk As CheckBox In lstCheck
chk.ForeColor = Color.Red
Next
End Sub
根据评论编辑:这是另一个取决于事件过程的示例。该列表是在 Form.Load 方法中创建的。我向您的 ToolStrip 添加了对 CloseTab 和 AddTab 的调用。这些调用会更新复选框列表。我在表单中添加了一个按钮,用于更改复选框的文本颜色。
Private lstCheck As List(Of CheckBox)
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CreateCheckBoxesList()
End Sub
Private Sub CreateCheckBoxesList()
lstCheck = New List(Of CheckBox) From {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7}
End Sub
Private Sub CloseTab(TabIndexClosed As String)
Select Case TabIndexClosed
Case "Tab1"
lstCheck.Remove(CheckBox1)
lstCheck.Remove(CheckBox2)
Case "Tab2"
lstCheck.Remove(CheckBox3)
lstCheck.Remove(CheckBox4)
Case "Tab3"
lstCheck.Remove(CheckBox5)
lstCheck.Remove(CheckBox6)
lstCheck.Remove(CheckBox7)
End Select
End Sub
Private Sub AddTab(TabAdded As String)
Select Case TabAdded
Case "Tab1"
lstCheck.Add(CheckBox1)
lstCheck.Add(CheckBox2)
Case "Tab2"
lstCheck.Add(CheckBox3)
lstCheck.Add(CheckBox4)
Case "Tab3"
lstCheck.Add(CheckBox5)
lstCheck.Add(CheckBox6)
lstCheck.Add(CheckBox7)
End Select
End Sub
Private Sub btnRed_Click(sender As Object, e As EventArgs) Handles btnRed.Click
For Each chk As CheckBox In lstCheck
chk.ForeColor = Color.Red
Next
End Sub
Private Sub HideRouterFormatterToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HideRouterFormatterToolStripMenuItem.Click
If HideRouterFormatterToolStripMenuItem.Checked Then
TabControl1.TabPages.Remove(TabPage1)
CloseTab("Tab1)")
End If
If HideRouterFormatterToolStripMenuItem.CheckState = 0 Then
TabControl1.TabPages.Add(TabPage1)
AddTab("Tab1")
End If
End Sub
我刚刚从您的工具条的名称中了解到这可能是一个 WPF 应用程序,在这种情况下,所有的赌注都被取消了。我假设是 Windows 窗体。在您的问题中包含这将是很好的信息。这可能有效,但它是为 WinForms 设计的。