2012-04-11 136 views
0

我想做一個自定義標籤類與透明度,我正在尋找很多關於此的文章,但我的情況是不同的,因爲我試圖做一個透明標籤倒計時,然後當我使用下面的示例代碼成功閃爍。 我使用間隔設置爲100的計時器,然後更改文本自定義標籤。 我不知道我能做些什麼來獲得更好的性能時,刷新,任何想法?透明標籤倒計時閃爍

class CustomLabel : Label 
{ 
    public CustomLabel() 
    { 
     this.SetStyle(ControlStyles.Opaque, true); 
     this.SetStyle(ControlStyles.OptimizedDoubleBuffer, false); 
    } 

    protected override System.Windows.Forms.CreateParams CreateParams 
    { 
     get 
     { 
      CreateParams cp = base.CreateParams; 
      cp.ExStyle |= 0x20; 
      return cp; 
     } 
    } 
    public override string Text 
    { 
     get 
     { 
      return base.Text; 
     } 
     set 
     { 
      base.Text = value; 
      RecreateHandle(); 
     } 
    } 
} 

回答

1

由於使用了RecreateHandle()調用,它會閃爍。這將重新創建本機Windows窗口,閃爍是不可避免的,因爲您會看到舊窗口被破壞並創建新窗口。只要刪除電話,這是沒有必要的。

並且不要忘記在Label控件中利用built-in support來獲得透明度。