カスタムコントロール(C#)の子バッファーをダブルバッファーします。
-
05-07-2019 - |
質問
ボタンを含むカスタムコントロールをダブルバッファリングしたい。コントロールをダブルバッファリングするさまざまな方法を試しました。 SetStyle、BufferedGraphicsContext、およびビットマップへの描画。これらはすべて、コントロールのカスタム描画では正常に機能しますが、バックバッファーへのボタンの描画を処理するものはありません。これを達成するにはどうすればよいですか
解決
技術的にはできません。それらが標準の.NET WinFormsボタンである場合、本当に必要はありません。
ボタン自体は、保護されたDoubleBufferedプロパティを介してそれを制御します。これにアクセスする唯一の方法は、S.W.F.Buttonから新しいクラスを派生し、そのクラスのインスタンスでDoubleBufferedプロパティを有効にするコードを実装することです(おそらくコンストラクターでそれを行います)。最後に、S.W.F.Buttonsの代わりにフォームでその新しいクラスのオブジェクトを使用します。
ただし、覚えているように、ボタンは純粋にWinAPIから描画されます。 GDI +ではありません。そのため、描画をダブルバッファリングする必要はありません 。とはいえ、あなたの使用シナリオはわかりませんし、アプリがどのような症状を示しているのかもわかりませんので、間違っている可能性があります。 :)
書籍 C#のPro .NET 2.0 Windowsフォームとカスタムコントロールを確認することを検討してください。このすべては、その本の情報から要約されました。
所属していません StackOverflow