![](/img/trans.png)
[英]How to change the background color of unused space tab in C# winforms?
[英]how can i change the background color of tabcontainer tab bar in c#?
我沒有找到選項卡容器的任何屬性來更改包含選項卡的欄的背景顏色,我該怎么做?
TabControl的背景色是從其父級繼承的。
將一個面板放置在窗體上,其位置和大小與TabControl相同,將TabControl放在此面板中,然后將Dock設置為“填充”。
或代碼中的相同方法:
private void Form1_Load(object sender, EventArgs e)
{
Panel tabBackground = new Panel
{
Location = tabControl1.Location,
Size = tabControl1.Size,
// Your color here
BackColor = Color.Magenta
};
tabBackground.Controls.Add(tabControl1);
Controls.Add(tabBackground);
tabControl1.Dock = DockStyle.Fill;
}
http://rajeshkm.blogspot.com/2006/07/how-to-change-color-of-tab-control-in.html
確保您閱讀了第一個注釋,因為它包含一個可以使代碼編譯的更正。
借用(並更正)的代碼警報:
private void ChangeTabColor(object sender, DrawItemEventArgs e)
{
Font TabFont;
Brush BackBrush = new SolidBrush(Color.Green); //Set background color
Brush ForeBrush = new SolidBrush(Color.Yellow);//Set foreground color
if (e.Index == this.tabControl1.SelectedIndex)
{
TabFont = new Font(e.Font, FontStyle.Italic | FontStyle.Bold);
}
else
{
TabFont = e.Font;
}
string TabName = this.tabControl1.TabPages[e.Index].Text;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
e.Graphics.FillRectangle(BackBrush, e.Bounds);
Rectangle r = e.Bounds;
r = new Rectangle(r.X, r.Y + 3, r.Width, r.Height - 3);
e.Graphics.DrawString(TabName, TabFont, ForeBrush, r, sf);
//Dispose objects
sf.Dispose();
if (e.Index == this.tabControl1.SelectedIndex)
{
TabFont.Dispose();
BackBrush.Dispose();
}
else
{
BackBrush.Dispose();
ForeBrush.Dispose();
}
}
要在您的代碼中使用此代碼,請將此行放入表單的load事件中:
tabControl1.DrawItem += ChangeTabColor.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.