我制作了一个自定义 UserControl i Vb.net(Windows 应用程序)。
如何将其动态添加到表单中?
我制作了一个自定义 UserControl i Vb.net(Windows 应用程序)。
如何将其动态添加到表单中?
UserControl 本质上只是另一个类。它继承自 Control,因此您可以使用控件执行各种操作,但除此之外它只是一个类。因此,要将用户控件动态添加到表单中,您需要执行以下操作:
Dim X As New MyControl()
Me.MyGreatTabPage.Controls.Add(X)
。您也可以直接将其添加到您的表单中,因为表单也是一个容器。X.Location
和X.Size
。请记住,您创建的每个实例New MyControl()
都是一个单独的 MyControl。不要犯重复创建新控件并以某种方式将它们放在一起的错误。创建并放置一次控件。将其分配给表单的成员变量,当您需要使用它时,请使用此变量。
我认为您要查找的内容写为: this.Controls.Add(myControl) 在 C# 中。我敢肯定它在VB中也很相似?
Form.Controls.Add(Page.LoadControl("SomeUserControl.ascx"))
然后是捕获事件的困难部分,因为它需要重新加载每个请求。我通常使用 ViewState 标志来表示它已经加载,并检查该标志是否存在,看看我是否应该在 OnInit 中重新加载它
Dim newControl As UserControl = LoadControl("~/Controls/DRQ/Create/UCNewControl.ascx")
Me.panelHolder1.Controls.Add(newControl)
这是添加两个或更多的方法:
Private _userControlList As New List(Of YourControl)
Private Sub AddingControlOnPanel()
Dim index As Integer = _userControlList.Count + 1
Dim userControl As New YourControl
userControl.Location = New System.Drawing.Point(SomeLocation)
userControl.Size = New System.Drawing.Size(SomeSize)
userControl.Name = "userControl" + index.ToString
userControl.Visible = False
_userControlList.Add(userControl)
UserControlsPanel.Controls.Add(userControl)
userControl.Visible = True
End Sub
For i As Integer = 1 To 10
Dim tb As New TextBox
tb.Top = 26 * i
tb.Left = 12
tb.Text = "text box " & i.ToString()
tb.Parent = Me
Next