2009-03-04 15 views
2

私はToolStripControlHostNumericUpDownをホストし、NumericUpDownの特性を公開しているコントロールを持っています。機能的には問題ありませんが、ToolStripに置かれている場合は、他のToolStripItemと視覚的に適合しません。既存のToolStripRendererを使用して、ホストNumericUpDownをペイントするにはどうすればよいですか?

私はToolStripの既存のToolStripRendererを使って、コントロール上にあるToolStripComboBoxと同様の方法でコントロールを描画したいと考えています。コントロールを使用している他の人が、自分が選んだレンダラーのどれかでコントロールを使用できるようにしたいので、私はカスタムを作成することに興味がありません(ToolStripRenderer)。

ホストコントロールクラス、ホストコントロールクラス、およびレンダラーの描画メソッドを使用して、OnPaintOnPaintBackgroundをオーバーライドしようとしましたが、達成できたのはエッジの周りに塗装されていない領域を持つことでした。スピンボタンはまだシステムテーマで描かれています。

既存のToolStripRendererを使用してホストNumericUpDownをペイントするにはどうすればよいですか?

答えて

0

NumericUpDownクラスは、実際にはGDIの一部として存在する共通コントロールクラスのラッパーです。基になる共通コントロールは、ビジュアルスタイルがアプリケーションに対して有効になっているかどうかによって、2つの方法のいずれかで描画されます。図面をオーバーライドするには、すべての図面を自分で実行する必要があります。ボタンまたは境界線をオーバーライドするだけでコントロールに指示することはできません。

すべての図面を自分で演奏するのは、聞こえるよりはるかに難しいです。申し訳ありませんが、私は簡単なソリューションを提供することはできませんが、簡単なソリューションはないと思います。

+0

すべての図面を自分で作成したいが、それを行うにはToolStripRendererのメソッドを使用したい。 – Simon

関連する問題