いくつかの「カスタム コントロール」のライブラリがあります。基本的に、独自のボタン、丸みを帯びたコーナー パネル、カスタム ペイントを使用したいくつかのグループボックスがあります。OnPaint メソッドの「数学」にもかかわらず、コントロールはかなり標準的です。ほとんどの場合、角を丸くして背景にグラデーションを追加するだけです。そのすべてに GDI+ を使用します。
これらのコントロールは問題ありません (顧客によると非常に見栄えが良い) が、DoubleBuffer にもかかわらず、特に同じフォームに 20++ ボタン (たとえば) がある場合に、再描画が見られることがあります。フォームをロードすると、ボタンが描画されるのが見えます…これは面倒です。
私たちのボタンが地球上で最速のものではないことは確かですが、私の質問は、ダブルバッファが「オン」の場合、すべての再描画がバックグラウンドで行われ、Windows サブシステムが結果を「即座に」表示するべきではないということです。
一方、ラベルを作成する「複雑な」foreach ループがある場合は、ループの前にパネルのレイアウトを一時停止し、ループが終了したときにパネルのレイアウトを再開する場合は、ラベルをパネルに追加し (ダブル バッファー)、それらのプロパティを変更します。これらのコントロール (ラベルとボタン) はすべて「ほぼ瞬時に」表示されるべきではないでしょうか? これはそのようには起こりません。パネルがいっぱいになっているのがわかります。
なぜこれが起こっていないのですか?サンプル コードなしで評価するのは難しいことはわかっていますが、それを再現するのも難しいです。私はカメラでビデオを作ることができましたが、これで私を信頼してください、それは速くありません:)