解決WinForm介面閃爍問題

2022-03-07 02:54:50 字數 1131 閱讀 2247

前言

之前將.net 1.1 windows form程式公升級到.net 4.0,結果在開畫面時,閃的非常利害!  於是就開始找解決方法。

開始找到了設定doublebuffer=true,這個有一點點用,在高檔的機器上面,但是在4年前的nb問題還是一樣,尤其是當畫面物件很多時,感覺是乙個乙個畫出來! 還是被user當~~

後來找到了「how to fix the flickering in user controls」,照他的方式來做,效能果然是一粒一的好呀!

他的方式是在form及usercontrol上覆寫createparams,程式如下,

form上的code

c#

get
}

vb

get
dim cp as createparams = mybase.createparams

cp.exstyle = cp.exstyle or &h2000000
' turn on ws_ex_composited
return cp
end get

end property

usercontrol的code

c#

get
}

vb

get
dim parms as system.windows.forms.createparams = mybase.createparams

'turn off ws_clipchildren
parms.style = (parms.style and (not &h2000000))
return parms
end get

end property

1.在xp機器上,border不會顯示出來!

2.只要在form上加入 or &h2000000即可有效果,usercontrol可不需加入那一段code!

3.如果form上沒有加入 or &h2000000,而usercontrol有加入 and (not &h2000000)的話,畫面上的label會有顯示不出來的狀況!  

winform頻繁重新整理導致介面閃爍解決方法

一 通過對窗體和控制項使用雙緩衝來減少圖形閃爍 當繪製時出現閃爍時,使用雙緩衝 對於大多數應用程式,net framework 提供的預設雙緩衝將提供最佳效果。預設情況下,標準 windows 窗體控制項是雙緩衝的。可以通過兩種方法對窗體和所創作的控制項啟用預設雙緩衝。一種方法是將 doublebu...

winform頻繁重新整理導致介面閃爍解決方法

龍心文 原文 winform頻繁重新整理導致介面閃爍解決方法 一 通過對窗體和控制項使用雙緩衝來減少圖形閃爍 當繪製時出現閃爍時,使用雙緩衝 對於大多數應用程式,net framework 提供的預設雙緩衝將提供最佳效果。預設情況下,標準 windows 窗體控制項是雙緩衝的。可以通過兩種方法對窗體...

解決vc介面閃爍問題

這是個老生常談的問題,有過vc編寫介面的經驗的人大都遇過,至於問題產生的原因,網上已有太多描述,這裡只給出幾個解決方法的建議。1 雙緩衝,這個是基本是必須的處理方式,同時最好處理wm erasebkgnd訊息。2 有些情況儘管使用了雙緩衝,但是在視窗拉伸的時候還是有閃爍的情況,例如介面控制項很複雜,...