C# TabControl手动触发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);
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#TabControl是一种常用的用户界面控件,它允许在一个容器中显示多个选项卡页面。每个选项卡页面都可以包含不同的内容,以便用户能够轻松地在不同的视图之间切换。 要使用TabControl控件,你需要在C#中创建一个TabControl的实例,并将其添加到窗体或其他容器控件中。然后,你可以添加选项卡页面并设置每个选项卡的标题和内容。 下面是一个简单的示例代码,演示如何使用TabControl控件: ```csharp using System; using System.Windows.Forms; namespace TabControlExample { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { // 创建一个TabControl实例 TabControl tabControl = new TabControl(); tabControl.Dock = DockStyle.Fill; // 添加选项卡页面 tabControl.TabPages.Add("Page 1"); tabControl.TabPages.Add("Page 2"); tabControl.TabPages.Add("Page 3"); // 设置每个选项卡的内容 tabControl.TabPages[0].Controls.Add(new Label() { Text = "This is Page 1" }); tabControl.TabPages[1].Controls.Add(new Label() { Text = "This is Page 2" }); tabControl.TabPages[2].Controls.Add(new Label() { Text = "This is Page 3" }); // 将TabControl添加到窗体中 this.Controls.Add(tabControl); } } } ``` 在这个示例中,我们创建了一个名为MainForm的窗体,并在其加载事件中添加了一个TabControl控件。在TabControl中,我们添加了三个选项卡页面,并分别设置了每个页面的内容。最后,将TabControl添加到窗体中以显示出来。 请注意,以上只是一个简单的示例,你可以根据自己的需求自定义选项卡页面的内容和样式。希望对你有所帮助!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值