c# - 更改事件标签页上的字体颜色

标签 c# winforms colors tabcontrol

我的 TabControl 有问题。我将各种选项卡设置为垂直模式,并对它们进行了一些调整。这是它的外观图片:

tabcontrol

而且我想知道如何从红色变为浅蓝色,或者将灰色背景变为浅一点。 我试着听从另一个人的建议,我通过谷歌找到了如何将字体更改为粗体并尝试了这个:

InitializeComponent();
tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;
tabControl1.DrawItem += new DrawItemEventHandler(tabControl1_DrawItem);

private void tabControl1_DrawItem_1(object sender, DrawItemEventArgs e)
{
    if (e.Index == tabControl1.SelectedIndex)
    {
        e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text,
            new Font(tabControl1.Font, FontStyle.Bold),
            Brushes.Aqua,
            new PointF(e.Bounds.X + 3, e.Bounds.Y + 3));
    }
    else
    {
        e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text,
            tabControl1.Font,
            Brushes.Aqua,
            new PointF(e.Bounds.X + 3, e.Bounds.Y + 3));
    }
}

那根本行不通。颜色或字体也不是粗体或浅绿色。 任何人有任何想法如何改变它? 出于某种原因,我在将 DrawMode 属性更改为 OwnerDrawFixed 后无法更改颜色 - 我需要能够使用这些垂直对齐的选项卡。

编辑:我不想更改实际标签页中的字体/颜色,只更改左侧的标签。

最佳答案

tabControl1_DrawItem_1 方法提供您想要的;您的代码的问题是您没有将它附加到 DrawItem 事件。只需替换:

tabControl1.DrawItem += new DrawItemEventHandler(tabControl1_DrawItem);

与:

tabControl1.DrawItem += new DrawItemEventHandler(tabControl1_DrawItem_1);

澄清:

tabControl1_DrawItem_1 将相同的颜色分配给所有选项卡(被选中或未被选中)。如果您想为选定/未选定的选项卡获得不同的颜色,则必须在 else 部分进行更改。示例:

private void tabControl1_DrawItem_1(object sender, DrawItemEventArgs e)
{
    if (e.Index == tabControl1.SelectedIndex)
    {
        e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text,
            new Font(tabControl1.Font, FontStyle.Bold),
            Brushes.Aqua,
            new PointF(e.Bounds.X + 3, e.Bounds.Y + 3));
    }
    else
    {
        e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text,
            tabControl1.Font,
            Brushes.Black,
            new PointF(e.Bounds.X + 3, e.Bounds.Y + 3));
    }
}

关于c# - 更改事件标签页上的字体颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311869/

相关文章:

c# - 没有文件扩展名的C#搜索结果

c# - 尝试将 Outlook 电子邮件保存在文件夹中

r - 查找接近 colorBrewer 调色板的颜色的颜色名称

matlab - 如何控制Matlab图中的颜色条颜色范围?

c# - 在 C# 中是否需要跨内存屏障访问不可变对象(immutable对象)?

c# - 未安装相应Office版本如何获取特定Excel对象库

c# - 编写自己的组框时出现 UI 故障

c - 渲染颜色选择器

c# - 使用 SqlDependency 缓存

c# - SQL 查询比较 Datetime 时 SQLDependency 失败