2008-10-05 112 views
5

我想雙緩衝包含按鈕的自定義控件。我嘗試過各種方法來加倍緩衝控制; SetStyle,BufferedGraphicsContext,並繪製到位圖。這些對於控件的自定義繪圖都可以正常工作,但它們都不會處理將按鈕繪製到後臺緩衝區。我如何實現這一目標?自定義控件(C#)中的雙緩衝區子控件

+0

另請參閱:http://stackoverflow.com/questions/76993/how-to-double-buffer-net-controls-on-a-form。 – ESRogs 2009-10-01 00:26:03

回答

2

從技術上講,你不能,如果他們是標準的.NET WinForms按鈕,你真的不需要。

按鈕本身控制通過受保護的DoubleBuffered屬性。訪問這個的唯一方法是從S.W.F.Button派生一個新類,並實現代碼以在該類的實例上啓用DoubleBuffered屬性(我可能會在構造函數中這樣做)。最後,在表單中使用新類的對象而不是S.W.F.Buttons。然而,我記得,按鈕純粹是從WinAPI中繪製的;他們不是GDI +。因此,您不應該需要來對其繪圖進行雙重緩衝。也就是說,我不知道你的使用場景,我不知道你的應用顯示的是什麼症狀,所以我可能是錯的。 :)

你可能會考慮檢查書Pro .NET 2.0 Windows Forms and Custom Controls in C#。所有這些都是從該書中的信息中總結出來的。