我有一個C#應用程序,它有一個mainform和幾個自定義用戶控件。C#用戶控件重繪
當我移動mainform時,用戶控件繼續重繪,當我停止移動mainform時,它們再次重繪。
我該怎麼做才能禁用此重新繪製?
我有一個C#應用程序,它有一個mainform和幾個自定義用戶控件。C#用戶控件重繪
當我移動mainform時,用戶控件繼續重繪,當我停止移動mainform時,它們再次重繪。
我該怎麼做才能禁用此重新繪製?
如果它的閃爍令人討厭,你可以嘗試將控件上的DoubleBuffered屬性設置爲true。
以外,你可以訂閱的形式移動事件,並以類似的方式,以什麼在這個問題描述關閉畫上的子控件...
嗯......問題是,當mainform移動時,我沒有重新繪製控件時根本沒有繪製控件。我想要的:只有當mainform移動時,重繪子控件#1並保持原樣(不重繪)。 – jfronner 2011-02-15 09:33:01
你不應該強行無效()自己。我假設你在控制中進行一些自定義繪畫?在InitializeComponent()之後的構造函數中;你有
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
?
對this previous question的回答討論瞭如何使用WM_SETREDRAW Win32 API暫停和恢復繪製。它包含一個漂亮的包裝類;也許它會幫助你。
有沒有閃爍的屏幕?你想停止閃爍 – Nighil 2011-02-15 08:42:02