日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C#?TabControl手動觸發DrawItem的實現_C#教程

作者:naruto2017 ? 更新時間: 2023-04-18 編程語言

當需要重繪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);
}

原文鏈接:https://blog.csdn.net/szy759590387/article/details/127881309

欄目分類
最近更新