在用C#開發WinForm程序時,常發現TabControl出現嚴重的閃爍問題,這主要是由於TabControl控件在實現時會繪製默認的窗口背景。其實以下一段簡單的代碼可以有效的緩解該問題的發生。
public DTZCKControl()
{
InitializeComponent();
//設置控件風格
SetStyle(
ControlStyles.AllPaintingInWmPaint | //全部在窗口繪製消息中繪圖
ControlStyles.OptimizedDoubleBuffer, //使用雙緩衝
true);
//this.allenPage1.PageIndexChanged += new Allen.Page.AllenPage.EventHandler(this.allenPage1_PageIndexChanged);
}
#region 讓TabControl不再閃爍
///<summary>
/// 設置控件窗口創建參數的擴展風格
///</summary>
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
return cp;
}
}
#endregion