C#更改tabControl选项卡颜色的方法

 更新时间:2016年03月03日 10:09:32   作者:Microblue  
这篇文章主要介绍了C#更改tabControl选项卡颜色的方法,结合实例形式较为详细的分析了C#更改tabControl选项卡颜色的的具体步骤与相关实现技巧,需要的朋友可以参考下

本文实例讲述了C#更改tabControl选项卡颜色的方法。分享给大家供大家参考,具体如下:

private void Form1_Load(object sender, EventArgs e)
{
  this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
  this.tabControl1.DrawItem += new DrawItemEventHandler(this.tabControl1_DrawItem);
}
private void tabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
  StringFormat sf = new StringFormat();
  sf.LineAlignment = StringAlignment.Center;
  sf.Alignment = StringAlignment.Center;
  if (e.Index == tabControl1.SelectedIndex)
    e.Graphics.FillRectangle(Brushes.Red, e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
  else
    e.Graphics.FillRectangle(Brushes.White, e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
  e.Graphics.DrawString(((TabControl)sender).TabPages[e.Index].Text,
  System.Windows.Forms.SystemInformation.MenuFont, new SolidBrush(Color.Black), e.Bounds, sf);
}

1.在Form类的构造函数中添加下列语句:

this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
this.tabControl1.DrawItem += new DrawItemEventHandler(this.tabControl1_DrawItem);

2.实现下列函数:

private void tabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
   Font fntTab;
   Brush bshBack;
   Brush bshFore;
   if ( e.Index == this.tabControl1.SelectedIndex)
   {
     fntTab = new Font(e.Font, FontStyle.Bold);
     bshBack = new System.Drawing.Drawing2D.LinearGradientBrush(e.Bounds, SystemColors.Control, SystemColors.Control, System.Drawing.Drawing2D.LinearGradientMode.BackwardDiagonal);
     bshFore = Brushes.Black;
   }
   else
   {
     fntTab = e.Font;
     bshBack = new SolidBrush(Color.Blue );
     bshFore = new SolidBrush(Color.Black);
   }
   string tabName  = this.tabControl1.TabPages[e.Index].Text;
   StringFormat sftTab = new StringFormat();
   e.Graphics.FillRectangle(bshBack, e.Bounds);
   Rectangle  recTab = e.Bounds;
   recTab = new Rectangle( recTab.X,  recTab.Y + 4,  recTab.Width,  recTab.Height - 4);
   e.Graphics.DrawString(tabName, fntTab, bshFore, recTab, sftTab);
}

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#数据结构与算法教程》、《C#常见控件用法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结

希望本文所述对大家C#程序设计有所帮助。

相关文章

  • c#使用Aspose打印文件的示例

    c#使用Aspose打印文件的示例

    这篇文章主要介绍了c#使用Aspose打印文件的示例,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-05-05
  • C#中如何获取当前目录和上级目录

    C#中如何获取当前目录和上级目录

    这篇文章主要介绍了C#中如何获取当前目录和上级目录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 详解c# SpinWait

    详解c# SpinWait

    这篇文章主要介绍了c# SpinWait的相关资料,帮助大家更好的理解和学习c# 编程,感兴趣的朋友可以了解下
    2020-10-10
  • 基于C#编写一个操作XML的简单类库XMLHelper

    基于C#编写一个操作XML的简单类库XMLHelper

    这篇文章主要为大家详细介绍了如何基于C#编写一个操作XML的简单类库——XMLHelper,文中的示例代码讲解详细,需要的小伙伴可以参考一下
    2023-06-06
  • gridview 显示图片的实例代码

    gridview 显示图片的实例代码

    gridview 图片的二进制数据库存储和显示
    2013-04-04
  • c# 怎样简洁高效的实现多个 Enum 自由转换

    c# 怎样简洁高效的实现多个 Enum 自由转换

    这篇文章主要介绍了c# 怎样简洁高效的实现多个 Enum 自由转换,帮助大家更好的进行c# 开发,感兴趣的朋友可以了解下
    2020-10-10
  • C# 获取PDF中的数字签名证书

    C# 获取PDF中的数字签名证书

    PDF中的加数字签名是对文档权威性的有效证明。本文将以C#代码示例展示如何来获取PDF中的数字签名证书信息。感兴趣的小伙伴可以学习一下
    2021-11-11
  • Unity3D旧电视滤镜shader的实现示例

    Unity3D旧电视滤镜shader的实现示例

    这篇文章主要介绍了Unity3D旧电视滤镜shader的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • c# List find()方法返回值的问题说明(返回结果为对象的指针)

    c# List find()方法返回值的问题说明(返回结果为对象的指针)

    本篇文章主要介绍了c#中List find()方法返回值的问题说明(返回结果为对象的指针) 需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • 区分c# 前台和后台线程

    区分c# 前台和后台线程

    这篇文章主要介绍了c# 前台线程和后台线程的区别与联系,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论