ComboBoxを継承した上に、独自のインターフェイスを継承して作成したコントロールが、貼り付け先のフォーム上において、デザイン画面で位置移動できないという異常事態が発生している。
位置移動は、Locationプロパティを直接操作すれば出来るのだが、マウスによるドラッグ移動が行えない。というか、コントロールを選択しても、選択中という枠すら出ない。なぜ?
ちなみに冒頭部分のコードは下記の通り。
Public Class ComboBox Inherits System.Windows.Forms.ComboBox Implements IControlBase
IControlBaseというインターフェイスは、
Property Style() As Style Property CustomizeStyle() As Boolean Sub RefreshStyle()
の3つのメソッド、プロパティを定義しているだけなんだが。なんで?
...原因がわかった。ComboBoxが持っているStyleプロパティとインターフェイスのStyleというプロパティがかぶっていたのが原因のようだ。ImplementするStyleプロパティの名称を「Style1」などと変更することで解決した。
_ Public Property Style1() As Style Implements IControlBase.Style Get Return _style End Get Set(ByVal styl As Style) _style = styl End Set End Property
こんな感じ。Styleプロパティの実体名がインターフェイスの定義と異なるが、末尾のImplements句の後、IControlBase.Styleが指定されていればOK。