カスタムコントロール(C#)の子バッファーをダブルバッファーします。

StackOverflow https://stackoverflow.com/questions/171830

質問

ボタンを含むカスタムコントロールをダブルバッファリングしたい。コントロールをダブルバッファリングするさまざまな方法を試しました。 SetStyle、BufferedGraphicsContext、およびビットマップへの描画。これらはすべて、コントロールのカスタム描画では正常に機能しますが、バックバッファーへのボタンの描画を処理するものはありません。これを達成するにはどうすればよいですか

役に立ちましたか?

解決

技術的にはできません。それらが標準の.NET WinFormsボタンである場合、本当に必要はありません。

ボタン自体は、保護されたDoubleBufferedプロパティを介してそれを制御します。これにアクセスする唯一の方法は、S.W.F.Buttonから新しいクラスを派生し、そのクラスのインスタンスでDoubleBufferedプロパティを有効にするコードを実装することです(おそらくコンストラクターでそれを行います)。最後に、S.W.F.Buttonsの代わりにフォームでその新しいクラスのオブジェクトを使用します。

ただし、覚えているように、ボタンは純粋にWinAPIから描画されます。 GDI +ではありません。そのため、描画をダブルバッファリングする必要はありません 。とはいえ、あなたの使用シナリオはわかりませんし、アプリがどのような症状を示しているのかもわかりませんので、間違っている可能性があります。 :)

書籍 C#のPro .NET 2.0 Windowsフォームとカスタムコントロールを確認することを検討してください。このすべては、その本の情報から要約されました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top