TabControlのタブをDisableにする(WinForms)

c# - TabControl.DrawItem not firing on user painted TabControl - Stack Overflow
http://stackoverflow.com/questions/3115321/tabcontrol-drawitem-not-firing-on-user-painted-tabcontrol


DrawItemイベントが起きないタイミングで描画しなおすにはInvalidate()すれば良いと思いますが、他に方法あれば教えてください。

TabControl1.DrawMode = TabDrawMode.OwnerDrawFixed
AddHandler TabControl1.DrawItem, New DrawItemEventHandler(AddressOf TabControl1_DrawItem)
AddHandler TabControl1.Selecting, New TabControlCancelEventHandler(AddressOf TabControl1_Selecting)

Private Sub TabControl1_DrawItem(sender As Object, e As DrawItemEventArgs)
    Dim tabPage = TabControl1.TabPages(e.Index)
    Dim bounds = CType(e.Bounds, RectangleF)
    Using fmt = New StringFormat()
        fmt.Alignment = StringAlignment.Center
        fmt.LineAlignment = StringAlignment.Center
        If tabPage.Enabled Then
            Using brush = New SolidBrush(tabPage.ForeColor)
                e.Graphics.DrawString(tabPage.Text, tabPage.Font, brush, bounds, fmt)
            End Using
        Else
            Using brush = New SolidBrush(SystemColors.GrayText)
                e.Graphics.DrawString(tabPage.Text, tabPage.Font, brush, bounds, fmt)
            End Using
        End If
    End Using
End Sub

Private Sub TabControl1_Selecting(sender As Object, e As TabControlCancelEventArgs)
    If Not e.TabPage.Enabled Then
        e.Cancel = True
    End If
End Sub