大規模な制御の変更中のパフォーマンスの向上
コントロールを大幅に変更する場合、不必要な再塗装を防ぐことが最適なパフォーマンスに不可欠です。 SuspendLayout
とResumeLayout
はある程度のコントロールを提供しますが、WM_SETREDRAW
はより堅牢なソリューションを提供します。
wm_setredrawアドバンテージ
Win32メッセージは、親と子の両方のコントロールに影響を与える塗装懸濁液を優れた制御を提供します。 WM_SETREDRAW
引数をwParam
に設定して、すべての絵画を効果的に止めます。false
実装の詳細
絵画のサスペンションと再開を実装する方法:
<code class="language-csharp">public static void SuspendDrawing(Control parent) { SendMessage(parent.Handle, WM_SETREDRAW, false, 0); } public static void ResumeDrawing(Control parent) { SendMessage(parent.Handle, WM_SETREDRAW, true, 0); parent.Refresh(); }</code>
重要なメリット
C#およびvb.netの詳細な情報と包括的なコードの例については、これらのリソースを探索してください。 c#jitter(利用可能な場合はリソースへのリンク)
レイアウトの一時停止(利用可能な場合はリソースへのリンク)WM_SETREDRAWを使用したコントロールの拡張メソッド(利用可能な場合はリソースへのリンク)
以上が複雑な制御の変更中にWM_SETREDRAWがパフォーマンスを改善するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。