Winform自定義控件在界面上拖動、滾動鼠標。。會閃爍的解決方法

環境說明:

   項目中有一個基類窗體BaseForm,有一個自定義控件TextBoxBase,兩個控件都做了一些獨特常規的封裝和重寫,在TextBoxBase中有一點重繪的下劃線,發現在窗體運行之後,在窗體上滾動鼠標滾輪,會導致TextBoxBase下劃線閃爍。

解決辦法:重寫兩個控件的CreateParams方法。

  BaseForm中添加:

 

1 protected override CreateParams CreateParams
2 {
3     get
4     {
5             CreateParams cp = base.CreateParams; 
6             cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED 
7             return cp; 
8     }
9 }

 

  TextBoxBase中添加:

1 protected override CreateParams CreateParams
2 {
3        get
4       {
5               var parms = base.CreateParams; 
6               parms.Style &= ~0x02000000; // Turn off WS_CLIPCHILDREN 
7               return parms;
8        }
9 }

問題解決。

 

  

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章