我開發了一個Windows應用程序,其接口具有多個文本框,並將它們全部放置在一個面板(面板具有背景圖像)中。減少閃爍通過關閉WS_CLIPCHILDREN
無論何時加載面板,窗口(帶有這些文本框)都會閃爍。
我讀了很多的建議,以儘量減少這種閃爍, 一個建議的解決方案的是以下,
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.DoubleBuffer, true);
但它不和我一起工作,
我讀到關閉WS_CLIPCHILDREN使用該代碼:
protected override CreateParams CreateParams {
get {
var parms = base.CreateParams;
parms.Style &= ~0x02000000; // Turn off WS_CLIPCHILDREN
return parms;
}
}
此代碼可以幫助一些面臨同樣問題的人。所以我想使用它,但我真的不知道在哪裏粘貼它,我的意思是,我讀了它應該粘貼在窗體中,但在UserControl的代碼。我不知道該怎麼做,我使用的所有控件都不是自定義控件。
看看這裏&看到的第一個答案:
How to fix the flickering in User controls
由於提前,
我的表單加載時沒有閃爍。你確定在加載過程中你沒有在你的UI線程中做很多不必要的工作嗎? – siride 2013-05-04 17:04:02
其實我有一個最初不可見的面板,當用戶點擊一個按鈕時,這個面板(以及它上面的文本框)將會可見,此外,所有的文本框都將被填充。這不是那種明顯的閃爍。但它有點困擾。謝謝:) – user1477701 2013-05-04 17:20:56