WinForms ダブルバッファリングにおけるちらつきアーティファクトへの対処
ダブル バッファリングを使用する WinForms アプリケーションでは、コントロールの読み込みまたは更新中に永続的なビジュアル アーティファクトが表示されることがあります。 これは、標準のダブル バッファリングはメイン フォームにのみ影響し、その子コントロールには影響しないためです。
この解決策では、フォーム レベルと子コントロール レベルの両方でダブル バッファリングを実装する必要があります。 WS_EX_COMPOSITED
スタイル フラグ (Windows XP で導入) により、フォーム全体の二重バッファリングが有効になります。 有効にする方法は次のとおりです:
<code class="language-csharp">protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // Enable WS_EX_COMPOSITED return cp; } }</code>
これによりペイントが高速化されるわけではありませんが、少し遅れてフォームが正しく表示されるようになるため、目に見えるペイント アーティファクトが防止されます。
遅延を完全に排除するには、別のアプローチを検討してください。標準コントロールの使用を避け、代わりにカスタム コントロールを OnPaint
メソッド内に直接描画します。 OnMouseClick
イベントを介してユーザー インタラクションを処理します。
以上がダブルバッファリング使用時の WinForms アプリケーションのちらつきアーティファクトを除去するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。