總結和開始記錄實驗的現象,調試代碼的經驗,同時開始用博客記錄一些技術上的進步 2017-09-01 09:01:02 1、 picturebox 上 進行覆蓋,移動,大小改變,都會觸發控制項重繪事件,重繪其本身和其所有的子控制項, 所以以繪圖區域為父容器的pictureBox在程式運行時進行的任意操作只 ...
總結和開始記錄實驗的現象,調試代碼的經驗,同時開始用博客記錄一些技術上的進步
2017-09-01
09:01:02
1、
picturebox 上 進行覆蓋,移動,大小改變,都會觸發控制項重繪事件,重繪其本身和其所有的子控制項,
所以以繪圖區域為父容器的pictureBox在程式運行時進行的任意操作只要是其visible = true 就會觸發picturebox重繪;
2、
所有的技術更新完善應該在實驗基本成功之後去做的,應該住很短的時間里打通設計的思路,確立該方案可行,而後加以技術完善,
在設計之初不應該被諸多細節絆住手腳,細節之處可以先放到一邊,先把主幹作重要的功能實現出來。
3、
C# WinForm窗體 控制項Control 的 Invalidate、Update、Refresh的區別
Refresh: 強制控制項使其工作區無效並立即重繪自己和任何子控制項。== Invalidate Update
Invalidate: 使控制項的特定區域(可以自己設置區域,從而提高性能)無效並向控制項發送繪製消息。
將控制項標記為需要重繪,但是不會立即執行刷新重繪,等到系統空閑時進行重繪。
Update: 使控制項重繪其工作區內的無效區域,立即調用Paint事件。若有無效區域,Update將立即觸發重繪。
Paint: 無處不在。如果你調用3次Invalidate,但是系統將只觸發一次Paint事件。
大多數時候Invalidate已經足夠了,當系統要集中進行大量的刷新重繪時,建議使用Invalidate,因為這樣系統最終只進行一次刷新,提高了系統性能。如果你想立即執行刷新的時候,建議使用Refresh方法。