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 都将绘制在其 TabPage
的 ForeColor
中。
将 DrawString
替换为 TextRenderer.DrawText
会更好!
如果您只想更改 selected 选项卡的颜色,只需使用如下检查:
SolidBrush myBrush = new SolidBrush (e.State.HasFlag(DrawItemState.Selected) ?
SystemColors.ActiveCaptionText : SystemColors.ControlText)
我按照此解决方案 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 都将绘制在其 TabPage
的 ForeColor
中。
将 DrawString
替换为 TextRenderer.DrawText
会更好!
如果您只想更改 selected 选项卡的颜色,只需使用如下检查:
SolidBrush myBrush = new SolidBrush (e.State.HasFlag(DrawItemState.Selected) ?
SystemColors.ActiveCaptionText : SystemColors.ControlText)