2

をホストし、のプロパティを公開するコントロールがNumericUpDownありますToolStripControlHostNumericUpDown機能的には問題ToolStripありませんが、 に配置すると、視覚的に他ToolStripItemの と一致しません。

ToolStrip既存のを使用して、コントロールにもある es とToolStripRenderer同様の方法でコントロールを描画したいと思います。コントロールを使用する他のユーザーが、選択したレンダラーで使用できるようにしたいので、それを行うToolStripComboBoxためのカスタムを作成することに興味はありません。ToolStripRenderer

ホスティング コントロール クラスとホストされたコントロール クラスでオーバーライドを試みOnPaint、レンダラーの描画メソッドを使用してみましたが、達成できるのは端の周りに未塗装の領域を持つことだけです。OnPaintBackgroundスピン ボタンは引き続きシステム テーマで描画されます。

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

4

1 に答える 1

0

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

すべての描画を自分で実行することは、思ったよりもはるかに困難です。申し訳ありませんが、簡単な解決策を提供することはできませんが、簡単な解決策はないと思います。

于 2009-03-04T11:04:42.510 に答える