|
分類:[C#]
[.NET Framework 4]
現在、TextBox から派生したコントロール (TextBoxEx) があります。 この TextBoxEx に、NumericUpDown のようなスピンボタンを実装したいと思っています。
そこで、TextBox から派生さるのをやめて UpDownBase から派生させようと思いました。 ここで問題となったのが、TextBoxEx はクリップボードからの貼り付けの制御など (他にも) を行うために、WndProc メソッドをオーバーライドしていることです。
UpDownBase から派生させた場合、このメッセージを捕まえることができません。 # UpDownBase はコンテナコントロールで、子コントロールに TextBox を含んでいる。 # 子コントロールのメッセージは処理できない (はず)。
UpDownBase が内部に持っている TextBox を TextBoxEx に置き換えられれば最も楽そうですが、そんな方法は分かりません。 # むりやりできたとして、UpDownBase の実装に問題がでない自信も持てない。
そのため、この方法は一旦諦め、TextBoxEx に自前のスピンボタンを乗せてみようと思いました。 この際、なるたけ標準コントロールと外観を同じにしたいため、UpDownButtons (UpDownBase で使用されているも参照できず) の見た目で実装したいです。 が、上記の通りコントロールは参照できず、〜〜Renderer クラスも見当たりません。
手段は上記の手段にこだわっておりません。 上記手段での解決方法、または別のアプローチで解決する術があるでしょうか。
よろしくお願いします。
|