歡迎跟我連絡

本頁最下方有Web MSN可以直接跟我交談喔!
免安裝程式...哈哈 歡迎聊天

2009年8月26日 星期三

設定 DoubleBuffered 屬性(Property)

下面的範例是如何設定 protected 的Control.Double­Buffered屬性為True,這是一個經常需要去特別修改的屬性,這樣一來就可以避免重繪控制項時造成的螢幕閃爍.

所有的控制項都有Double­Buffered屬性,但是此屬性是被[protected]保護起來,底下這個Function,利用了Reflection來存取 non-public 的methods 以及properties,如此一來就可以輕易的修改Double­Buffered屬性...

範例程式:

// set instance non-public pr operty with name "DoubleBuffered" to true typeof
public static void SetDoubleBuffered(Control control)
{
       typeof(Control).InvokeMember("DoubleBuffered", 
       BindingFlags.SetProperty |BindingFlags.Instance | BindingFlags.NonPublic, 
       null, control, new object[] { true } );
}

2009-8-12 下午 01-03-39

0 個回應:

MSN狀態(我在線上時,可以跟我交談喔)