当前位置 : 主页 > 网络编程 > c#编程 >

C#TabControl手动触发DrawItem的实现

来源:互联网 收集:自由互联 发布时间:2023-03-22
目录 方法一 方法二 当需要重绘TabControl的背景颜色时,有两种方法。 方法一 网上有很多文章介绍,将tabControl的DrawMode属性设为OwnerDrawFixed,然后在其DrawItem事件处理程序中重绘背景颜色
目录
  • 方法一
  • 方法二

当需要重绘TabControl的背景颜色时,有两种方法。

方法一

网上有很多文章介绍,将tabControl的DrawMode属性设为OwnerDrawFixed,然后在其DrawItem事件处理程序中重绘背景颜色。

private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
    //标签header的背景
    for (int i = 0; i < tabControl1.TabPages.Count; i++)
    {
        e.Graphics.FillRectangle(Brushes.White, (sender as TabControl).GetTabRect(i));
    }
    //tabControl背景
    e.Graphics.FillRectangle(Brushes.White, (sender as TabControl).ClientRectangle);
}

方法二

当将tabControl的ItemSize设为(0,1)以便隐藏标签title的时候,方法一的事件不会被触发,会导致背景颜色无法重绘,这时候可以使用以下代码手动执行重绘。

private void ReDrawItem()
{
    Graphics g = Graphics.FromHwnd(tabControl1.Handle);
    //tabPage标签header的背景
    for (int i = 0; i < tabControl1.TabPages.Count; i++)
    {
        g.FillRectangle(Brushes.White, tabControl1.GetTabRect(i));
    }
    //tabControl背景
    g.FillRectangle(Brushes.White, tabControl1.ClientRectangle);
}

到此这篇关于C# TabControl手动触发DrawItem的实现的文章就介绍到这了,更多相关C#  手动触发DrawItem内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

上一篇:C#实现ComboBox变色的示例代码
下一篇:没有了
网友评论