如题:
c#中 TabControl怎么改变选中的标签的头部颜色?

解决方案 »

  1.   

    http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c93c.aspx#q1094q
      

  2.   

    TabControl这个东西,没法改变头部的颜色,只有自己继承,写控件了,代码不少。你也可以用dotNetBar2,这个集成的工具箱,网上搜一下,加到自己的工具箱中就好了,
    那里面有改好的TabControl
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace testTabFlash
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
                this.tabControl1.DrawItem += new DrawItemEventHandler(this.tabControl1_DrawItem);        }        private void Form1_Load(object sender, EventArgs e)
            {        }        private void tabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
            {
                Font fntTab;
                Brush bshBack;
                Brush bshFore;
    if (e.Index == this.tabControl1.SelectedIndex)    //当前Tab页的样式
                {
                    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    //其余Tab页的样式
                {
                    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);
            }
        }
    }
      

  4.   

    在网上搜索这个控件[FlatTabControl]是别人写的一个控件[FlatTabControl.dll]  可以修改标签的颜色