- - PR -
自作DATAGRIDのコレクションプロパティ
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-05-18 15:29
VB.NET-DATAGRIDから派生して自作のコントロールを作成しました。
もう一歩、使い勝手を良くしようと思い、各種設定をプロパティウィンドウからできるように作りこんでいます。 が、列をデータグリッドのコレクションとして設定するために 1.列クラスを作成 2.列コレクションクラスを作成 3.データグリッドクラスでプロパティとして列コレクションクラスを公開 の手順でやってみましたが、どうもうまくいきません。 現象として、プロパティウィンドウにコレクションのプロパティは表示されるのですが、コレクションの要素を追加しようと「追加」ボタンを押すと、列クラスが追加されるはずが、OBJECTクラスがついかされてしまいます。 以下、各クラスのソースとその実装部分です。 ※列クラスのプロパティ数は減らしてあります。 列コレクションクラスのAddRange辺りが怪しい?? '************************************************************************** 'class '名称 : columnInfo '機能 : 列クラス ' : '************************************************************************** <System.ComponentModel.DesignTimeVisible(False)> Public Class columnInfo Inherits System.ComponentModel.Component Sub New() End Sub Sub New(ByVal value As columnInfo) Me.ColumnType = value.ColumnType End Sub Public Enum colType Normal = 0 Fixed = 1 Graph = 2 End Enum Private _ColumnType As colType <System.ComponentModel.BrowsableAttribute(True) _ , System.ComponentModel.DescriptionAttribute("列タイプ")> _ Public Property ColumnType() As colType Get Return _ColumnType End Get Set(ByVal Value As colType) _ColumnType = Value End Set End Property End Class '************************************************************************** 'class '名称 : columnInfoCollection '機能 : 列コレクションクラス ' : '************************************************************************** Public Class columnInfoCollection Inherits System.Collections.ArrayList Sub New() End Sub <System.ComponentModel.BrowsableAttribute(True) _ , System.ComponentModel.DescriptionAttribute("列情報")> _ Default Public Shadows Property col(ByVal ind As Integer) As columnInfo Get Return Me(ind) End Get Set(ByVal Value As columnInfo) Me(ind) = Value End Set End Property Public Overloads Sub AddRange(ByVal obj As columnInfo()) MyBase.AddRange(obj) End Sub End Class ↓↓↓↓↓ 以下データグリッドクラスへの実装 ↓↓↓↓↓ '************************************************************************** 'Property '名称 : Column '機能 : 列情報プロパティ '************************************************************************** Private oColInfo As columnInfoCollection <System.ComponentModel.BrowsableAttribute(True) _ , System.ComponentModel.CategoryAttribute("MyProperty") _ , System.ComponentModel.DescriptionAttribute("列情報を設定します") _ , DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _ Public Property Column() As columnInfoCollection Get Return oColInfo End Get Set(ByVal value As columnInfoCollection) oColInfo = value End Set End Property |
1