2009-09-03 304 views
2

我有一個選項卡控件,我使用用戶繪畫來消除閃爍。它的閃爍清除效果很好,但標籤寬度不正確。隨着選項卡上文本的長度增加,文本週圍的填充量會變大。這就像選項卡的寬度是基於比正在繪製的字體大的字體。我已經嘗試更改選項卡控件上的字體大小,但這對選項卡寬度沒有影響。.net tabcontrol標籤尺寸

選項卡控件如何確定選項卡的寬度?有什麼我可以重寫,以便我可以提供標籤寬度的選項卡控制?

+0

你有沒有解決這個標籤大小?我遇到了同樣的問題,至今還沒有解決這個問題 – series0ne 2013-09-19 12:45:51

回答

0

在使用自定義繪畫之前,您是否嘗試啓用雙緩衝以消除閃爍?

剛剛嘗試調用這個函數在你的控制構造,看看它是如何工作的:

private void EnableDoubleBuffering() 
{ 
    this.SetStyle(ControlStyles.DoubleBuffer | 
     ControlStyles.UserPaint | 
     ControlStyles.AllPaintingInWmPaint, 
     true); 
    this.UpdateStyles(); 
} 
+0

設置UserPaint指定控件必須由子類上的OnPaint方法繪製。如果沒有OnPaint方法,則不會繪製選項卡。只需設置DoubleBuffer不會消除閃爍。 – Glenn 2009-09-03 14:45:18

0

的TabControl的有一個叫ItemSize屬性,它確實是用來通知TabControl的關於其標籤的大小。

0

要改變,你必須做什麼說伊恩(在ItemSize組必需的大小),並設置SizeMode屬性爲固定