Visual C# 更改选项卡 header 颜色

visual C# Change tab header colour

我按照此解决方案 set-tabpage-header-color 更改了选项卡标题的颜色。但是,这会在选项卡控件中的所有选项卡的选项卡 header 上设置相同的颜色。你能帮我只改变所选标签的 header 的颜色吗? 非常感谢这里的任何帮助。谢谢

DrawItemEventArgs e参数会告诉你所有你需要的。

要用 各种 颜色绘制 header 将 Brushes.Black 替换为 myBrush 并将 DrawString 放在 using像这样的子句:

using (SolidBrush myBrush = new SolidBrush (tabControl1.TabPages[e.Index].ForeColor))
{
    e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text, e.Font, myBrush ,
                          e.Bounds.Left + (e.Bounds.Width - sz.Width) / 2, 
                          e.Bounds.Top + (e.Bounds.Height - sz.Height) / 2 + 1);
}

现在每个 header 都将绘制在其 TabPageForeColor 中。

DrawString 替换为 TextRenderer.DrawText 会更好!

如果您只想更改 selected 选项卡的颜色,只需使用如下检查:

SolidBrush myBrush = new SolidBrush (e.State.HasFlag(DrawItemState.Selected) ? 
                     SystemColors.ActiveCaptionText : SystemColors.ControlText)