当前位置: 移动技术网 > IT编程>开发语言>c# > C#更改tabControl选项卡颜色的方法

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

2019年07月18日  | 移动技术网IT编程  | 我要评论

本文实例讲述了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#程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网