- PR -

ユーザーコントロールにコントロールコレクションプロパティを作成したい

1
投稿者投稿内容
WEIWEI
常連さん
会議室デビュー日: 2002/07/16
投稿数: 26
投稿日時: 2003-03-10 16:08
こんにちは。VB.NETで開発しています。
ユーザーコントロールに任意の数のコントロール(例えばテキストボックス)をコレクションとして保持し、プロパティとしてを公開したいと考えています。それらのアイテムは同時にユーザーコントロールに貼り付けされるようにしたいのですが、その方法がわかりません。精通されている方、どうか教えてください。
以下に、私の作ったテストコードを示します。

コード:
Public Class UserControl1
    Inherits System.Windows.Forms.UserControl

    Dim myTestCollection As TestItemCollection

Windows フォーム デザイナで生成されたコード

    Public Property TestItems() As TestItemCollection
        Get
            Return myTestCollection
        End Get
        Set(ByVal value As TestItemCollection)
            myTestCollection = value
        End Set
    End Property

    Public Class TestItemCollection
        Inherits System.Collections.CollectionBase

        Public Sub Add(ByVal LotItem As TestItem)
            List.Add(LotItem)
        End Sub

        Public Sub Remove(ByVal index As Integer)
            If index > Count - 1 Or index < 0 Then
                System.Windows.Forms.MessageBox.Show("Index not valid!")
            Else
                List.RemoveAt(index)
            End If
        End Sub

        Public ReadOnly Property Item(ByVal index As Integer) As TestItem
            Get
                Return CType(List.Item(index), TestItem)
            End Get
        End Property
    End Class
End Class

Public Class TestItem
    Inherits System.Windows.Forms.TextBox
End Class



このコードで、一応コレクションのプロパティは公開され、エディタで追加、削除は可能です。また、ユーザコントロールの子コントロールとしても認識されているのですが、テキストボックスは現れません。

以上よろしくお願いします。
masas
常連さん
会議室デビュー日: 2002/05/23
投稿数: 25
投稿日時: 2003-03-11 03:44
ちょっと的外れかもしれませんが、Renderメンバー関数をoverrideして、Collectionに入れたものを Controls.Add していったら表示されると思うのですが。。。
1

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