UserControl
その名前でにアクセスできますか?たとえば、私はすでにUserControl
(同じプロジェクトで)という名前uc1
とPanel
名前付きのを作成しPanel1
ているので、次のようになります。
Dim a As String = "uc1"
Panel1.Controls.Add(a)
UserControl
その名前でにアクセスできますか?たとえば、私はすでにUserControl
(同じプロジェクトで)という名前uc1
とPanel
名前付きのを作成しPanel1
ているので、次のようになります。
Dim a As String = "uc1"
Panel1.Controls.Add(a)
代わりに、次のようなことができます。
Dim c As Control = Me.Controls("uc1")
また
Dim c As Control = Me.Controls.Find("uc1", True)(0)
If c IsNot Nothing Then
Panel1.Controls.Add(c)
End If
しかし、なぜ追加しないのですか:
Panel1.Controls.Add(uc1)
uc1
(コントロールが内部的に保存されていると仮定します-> Dim uc1 As Control ...
。)
はい。スニペットにあるものに近いものではなく、Controls コレクションに文字列を追加することはできません。ただし、文字列を使用して Controls コレクションにインデックスを付けて、コントロールの参照を取得できます。このような:
Dim ctl as New MyUserControl
ctl.Name = "foo"
Panel1.Controls.Add(ctl)
...
Dim ctl as MyUserControl
ctl = DirectCast(Panel1.Controls("foo"), MyUserControl)