tagにタブ情報を保持するので、この関数以外なにも無くても表示非表示を切り替えられる。
tagを他の用途に使っていると利用不可能。
作ったはいいが、ちょっとこれどうよってほどコードが見にくくなってしまって微妙。
Private Sub SetTabVisible(ByVal oTabControl As TabControl, ByVal nIndex As Integer, ByVal bVisible As Boolean)
Dim oAllTabPages As List(Of KeyValuePair(Of TabPage, Boolean))
'
If oTabControl.Tag Is Nothing Then
' 全タブと、その表示状態を保持
oAllTabPages = New List(Of KeyValuePair(Of TabPage, Boolean))
For Each oTabPage As TabPage In TabControl1.TabPages
Dim oTabAndVisible As New KeyValuePair(Of TabPage, Boolean)(oTabPage, True)
oAllTabPages.Add(oTabAndVisible)
Next
oTabControl.Tag = oAllTabPages
Else
' 全タブと、その表示状態を取得
oAllTabPages = CType(oTabControl.Tag, List(Of KeyValuePair(Of TabPage, Boolean)))
End If
' タブの表示状態を設定
oAllTabPages(nIndex) = New KeyValuePair(Of TabPage, Boolean)(oAllTabPages(nIndex).Key, bVisible)
oTabControl.TabPages.Clear()
For Each oTabAndVisible As KeyValuePair(Of TabPage, Boolean) In oAllTabPages
If oTabAndVisible.Value = True Then
oTabControl.TabPages.Add(oTabAndVisible.Key)
End If
Next
End Sub