|
分類:[.NET 全般]
開発環境:VB.NET 2005
カスタムコントロールを作成しています。
その中で、自作コレクションのプロパティを作成しています。
以下の(MyControl.vb)コードを追加し、コンパイルし、Form1に貼り付けるところまでは良いのですが、
MyControl1 のプロパティ MyItems のコレクションエディタで追加を行うと、
Form1.Desiner.vbに生成されるコードが、エラーとなってしまいます。
具体的には、
New WindowsApplication3.MyControl.MyItemCollection.Add(MyItem1)です。
↓このようなコードが生成されることを期待していたのですが、うまくいきません。
Me.MyControl1.MyItems.Add(MyItem1)
どこが間違っているのか、なにかの属性等の追加が必要なのか、
ご教授いただきたくお願いします。
[Form1.Desiner.vb のInitializeComponent()抜粋]
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim MyItem1 As WindowsApplication3.MyItem = New WindowsApplication3.MyItem
Me.MyControl1 = New WindowsApplication3.MyControl
Me.SuspendLayout()
'
'MyControl1
'
Me.MyControl1.Location = New System.Drawing.Point(43, 55)
MyItem1.Value = 0
New WindowsApplication3.MyControl.MyItemCollection.Add(MyItem1)
Me.MyControl1.Name = "MyControl1"
Me.MyControl1.Size = New System.Drawing.Size(192, 152)
Me.MyControl1.TabIndex = 0
Me.MyControl1.Text = "MyControl1"
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.Add(Me.MyControl1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
[MyControl.vb]
Public Class MyControl
Public Class MyItemCollection
Inherits System.Collections.CollectionBase
Public Sub Add(ByVal LotItem As MyItem)
List.Add(LotItem)
End Sub
Public ReadOnly Property Item(ByVal index As Integer) As MyItem
Get
Return CType(List.Item(index), MyItem)
End Get
End Property
End Class
Private _MyItems As New MyItemCollection
Public Property MyItems() As MyItemCollection
Get
Return _MyItems
End Get
Set(ByVal value As MyItemCollection)
_MyItems = value
End Set
End Property
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
'カスタム描画コードをここに追加します。
End Sub
End Class
Public Class MyItem
Private _value As Integer = 0
Public Property Value() As Integer
Get
Return _value
End Get
Set(ByVal value As Integer)
_value = value
End Set
End Property
End Class
|