前言
之前將.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 有些情況儘管使用了雙緩衝,但是在視窗拉伸的時候還是有閃爍的情況,例如介面控制項很複雜,...