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