- - PR -
BackColorプロパティのオーバライドについて
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-12-21 14:03
いつもお世話になっております。
現在、VB.net2003にてWindowsアプリの開発を行っております。 さっそくの質問なのですが、現在Windows.Formのコンボボックスを継承し、 派生コントロールクラスを生成しております。 派生クラスでは、BackColorプロパティのオーバライドを行っております。 理由としては、 @当コントロールを使う側で、任意にBackColorを設定されていた場合、 その設定を採用。 A任意に設定されていない場合、当コントロールにて設定したBackColorにする。 現在、下記のように実装しているのですが、なぜが画面によっては例外が発生してしまいます。(具体的にはTabControlを使用し、当コントロールが貼り付けられている場合) 例外内容としては、「このコントロールは透明な背景色をサポートしません。」となっています。 ロジックを拝見してみても、なぜ透明になるかがさっぱりわかりません・・・。 何か問題点はありますでしょうか? お知恵をおかしくださいますよう、よろしくお願いいたします。 ------------------------------------------------------------------------------ #Region " コンストラクタ" Public Sub New() cBackColorValue = "当コントロールで設定したい値" End Sub #End Region #Region " 背景色オーバーライド" Private cBackColorValue As System.Drawing.Color Public Overrides Property BackColor() As System.Drawing.Color Get Return cBackColorValue End Get Set(ByVal Value As System.Drawing.Color) cBackColorValue = Value MyBase.BackColor = Value End Set End Property #End Region | ||||||||||||
|
投稿日時: 2006-12-21 14:51
本題と違いますが、オーバーライドする必要ないのでは。
で十分じゃありませんか? _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-12-25 11:05
に該当する箇所が、ソース中に見つけることができません。 本当に掲載されたソースがすべてなのでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-12-25 15:28
レスが遅くなり申し訳ございません。 早速のご返答ありがとうございます。
当方の認識違いなら申し訳ないのですが、 画面が表示される時(コントロールのインスタンスが生成される時)に ロジックの流れる順序は下記と認識しております。 @コンストラクタ ↓ Aプロパティが一度、全て網羅される。 なので、各アプリで 設定していれば、設定したプロパティの値が 設定していなければ、当派生コントロールのコンストラクタで設定した値になったままになるのではないでしょうか? 認識違いであれば申し訳ないですが、よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2006-12-25 16:18
だったら、
になります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-12-25 16:26
ご返答ありがとうございます。
すみません、そういう事でしたか。。。 確かにオーバライドせずに解決出来ておりました。 ご迷惑をお掛けしました・・・。 |
1