- PR -

デザイナでの抽象クラスから継承されたコンポーネントの表示

1
投稿者投稿内容
Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2003-02-25 18:44
お世話になっています。

Windows.Forms.DataGridColumnStyleを継承してデータグリット内に任意のComboBoxを表示させるColumnStyleを作成したいと思っています。
そのため、下記のようにDataGrid表示に必要なメソッドをMustInheritsとして宣言した抽象クラス[DataGridComboBox]を、ComboBoxから継承して作成しました。また、それを実装した[ABCComboBox]を作成しました。
[ABCComboBox]は普通のComboBoxと同じようにWindowsFormsに配置しています。

コード:
Public MustInherit Class DataGridComboBox : Inherits Windows.Forms.ComboBox
    
    Public MustOverride Sub SetList()
    Public MustOverride ReadOnly Property GridDisplayValue() As String
    Public MustOverride ReadOnly Property GridDataValue() As Object
End Class



コード:
Public Class ABCComboBox : Inherits DataGridComboBox
   Public Overrides Sub SetList()
      ...
   End sub
   
   ............
EndClass



しかし、この[ABCComboBox]が配置されているWindowsFormsをデザイナで開いた際にWindows フォーム デザイナで生成されたInitializeComponent内のABCComboBoxに関するコードを自動的に削除してしまうようです。

またABCComboBoxをデザイナで開こうとした場合、下記のようなエラーが出てしまいます。親を抽象クラスとしたコンポーネントはデザイナから配置等させることはできないのでしょうか。

引用:

デザイナは型DataGridComboBoxのインスタンスを作成しなければなりませんが、型がabstractとして宣言されているため、作成できませんでした。

Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2003-02-25 20:31
とりあえず継承はComboBoxからDataGridComboBoxをインターフェースとして定義してみることにします。
1

スキルアップ/キャリアアップ(JOB@IT)