如何重画tabcontrol 的背景色

kv888 2008-07-07 10:20:09
private void tabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
Font f;
Brush backBrush;
Brush foreBrush;

if (e.Index == this.tabControl1.SelectedIndex)
{
//f = new Font(e.Font, FontStyle.Italic | FontStyle.Bold);
f = new Font(e.Font, FontStyle.Regular);
//backBrush = new System.Drawing.Drawing2D.LinearGradientBrush(e.Bounds, Color.Blue, Color.Red, System.Drawing.Drawing2D.LinearGradientMode.BackwardDiagonal);
backBrush = new System.Drawing.Drawing2D.LinearGradientBrush(e.Bounds, Color.FromArgb(223, 232, 247), Color.FromArgb(223, 232, 247), System.Drawing.Drawing2D.LinearGradientMode.BackwardDiagonal);
foreBrush = Brushes.Black;
}
else
{
f = e.Font;
backBrush = new SolidBrush(e.BackColor);
foreBrush = new SolidBrush(e.ForeColor);
}

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, f, foreBrush, r, sf);

sf.Dispose();
if (e.Index == this.tabControl1.SelectedIndex)
{
f.Dispose();
backBrush.Dispose();
}
else
{
backBrush.Dispose();
foreBrush.Dispose();
}
}

以上代码只能改变已经创建的tabpage的颜色 可以剩下右侧的区域还是灰色的 我想把整个tabcontrol都改变成其它颜色
...全文
316 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhongwu 2011-12-09
  • 打赏
  • 举报
回复
学习学习
GentleCat 2008-07-07
  • 打赏
  • 举报
回复
推荐一个第二方控件给你: MagicControl 里面包含了你想要的tabControl 还有其他的控件~
lovefootball 2008-07-07
  • 打赏
  • 举报
回复
参考下
http://www.codeproject.com/KB/miscctrl/TabHeader.aspx
huing 2008-07-07
  • 打赏
  • 举报
回复
tabcontrol不支持backcolor属性,需要自己重画。上codeproject上找一个flattabconrol,里面说的比较详细
sjm2003 2008-07-07
  • 打赏
  • 举报
回复
设置form背景颜色似乎可以
s000rd 2008-07-07
  • 打赏
  • 举报
回复
本地图片看不到,你放到网上,找一些免费的空间,并支持盗链的
kv888 2008-07-07
  • 打赏
  • 举报
回复
就是"部门维护" 右边的一条灰色的区域
kv888 2008-07-07
  • 打赏
  • 举报
回复
s000rd 2008-07-07
  • 打赏
  • 举报
回复
以上代码只能改变已经创建的tabpage的颜色 可以剩下右侧的区域还是灰色的 我想把整个tabcontrol都改变成其它颜色

这句是啥意思?右侧区域只那里?TabItme还是下面的区域?
kv888 2008-07-07
  • 打赏
  • 举报
回复
不可以重画马?
sjm2003 2008-07-07
  • 打赏
  • 举报
回复
不如自己做个类似tabcontrol的控件用BUTTON 和PANEL做
sjm2003 2008-07-07
  • 打赏
  • 举报
回复
tabcontrol只是一个容器,没有背景色属性。

111,043

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧