[英]Dynamically add a usercontrol in VB.net
我已經定制了UserControl i Vb.net(Windows應用程序)。
如何將其動態添加到表單中?
UserControl本質上只是另一個類。 它繼承自Control,因此您可以使用控件執行各種操作,但除此之外它只是一個類。 因此,要將usercontrol動態添加到表單,您需要執行以下操作:
Dim X As New MyControl()
Me.MyGreatTabPage.Controls.Add(X)
。 您也可以將其直接添加到表單中,因為表單也是一個容器。 X.Location
和X.Size
。 請記住,使用New MyControl()
創建的每個實例都將是一個單獨的MyControl。 不要錯誤地重復創建新控件並以某種方式將它們放在彼此之上。 創建並放置控件一次。 將其分配給表單的成員變量,當您需要使用它時,請使用此變量。
我認為你要找的是:C#中的this.Controls.Add(myControl)。 我確定它在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.