软件编程
位置:首页>> 软件编程>> C#编程>> C#更改tabControl选项卡颜色的方法

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

作者:Microblue  发布时间:2022-09-07 19:30:14 

标签: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#程序设计有所帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com