5

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

4

1 に答える 1

2

技術的にはできません。標準の.NETWinFormsボタンであれば、実際にそうする必要はありません。

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

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

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

于 2008-10-05T11:37:46.657 に答える