標籤:
Control.Refresh - does an Control.Invalidate followed by Control.Update.
Refresh: 強制控制項使其工作區無效並立即重繪自己和任何子控制項。== Invalidate Update
Control.Invalidate - invalidates a specific region of the Control (defaults to entire client area) and causes a paint message to be sent to the control.Invalidate marks the control (region, or rect) as in need of repainting, but doesn‘t immediately repaint (the repaint is triggered when everything else has been taken care of and the app becomes idle).
Invalidate: 使控制項的特定地區(可以自己設定地區,從而提高效能)無效並向控制項發送繪製訊息。
將控制項標記為需要重繪,但是不會立即執行重新整理重繪,等到系統空閑時進行重繪。
Control.Update - causes the Paint event to occur immediately (Windows will normally wait until there are no other messages for the window to process, before raising the Paint event).Update causes the control to immediately repaint if any portions have been invalidated.
Update: 使控制項重繪其工作區內的無效地區,立即調用Paint事件。若有無效地區,Update將立即觸發重繪。
The paint event of course is where all the drawing of your form occurs. Note there is only one pending Paint event, if you call Invalidate 3 times, you will still only receive one Paint event.
Paint: 無處不在。如果你調用3次Invalidate,但是系統將只觸發一次Paint事件。
Most of the time Invalidate is sufficient, and advisable as you can do a bunch of invalidations (either explicit or implicit) and then let the control repaint itself when the app is idle. It is advisable to use Update or Refresh when you want the control to immediately repaint because the app will not be idle for a user-noticable period of time.
大多數時候Invalidate已經足夠了,當系統要集中進行大量的重新整理重繪時,建議使用Invalidate,因為這樣系統最終只進行一次重新整理,提高了系統效能。如果你想立即執行重新整理的時候,建議使用Refresh方法。
C# WinForm表單 控制項Control 的 Invalidate、Update、Refresh的區別