重複の可能性:
コントロールとその子の描画を一時停止するにはどうすればよいですか?
Winforms ダブル バッファリング
ユーザー定義のコントロール (81 個) を描画するフォームがあり、それぞれに別の 10 個のコントロール (合計 8,100 個) が含まれています。すべてが順番に描画されているようです (約 1 秒ほどかかります)。
私はこれら 2つの質問を見て、より良い推奨事項に従いました(this.DoubleBuffered = true
フォームとカスタムコントロールの両方、およびフォームで設定しましたSetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
が、何もしていないように見えました.
フォームのペイント関数を保存し、デリゲートに保存し、フォームがまったく再描画されないようにダミー関数にスワップしてから、実際の関数を元に戻してトリガーする方法はありますか。
これを行うためのより標準的な方法があると思いますが、見つけることができませんでした(そうではありませんSuspendLayout
/ResumeLayout
レイアウトロジックを扱うだけです)。
これどうやってするの?