我有一个带有按钮的表单,该按钮使用用户控件复制第二个选项卡的内容(用户控件)(即:添加一组新的文本框,如地址2,3等)。到目前为止,我已经能够在新创建的标签页上添加标签页并实例化用户控件,但我不知道如何使用用户控件从每个新实例化的标签页访问数据。我认为我需要声明每个新实例化的DetailTab实例(包含Details用户控件的类),但我并不确定。我不是专业的程序员,所以我会非常感激一种基本的解释。
Public Class KMCProfile 'Class with the actual UI
Private Sub AddDetails_Click(sender As Object, e As EventArgs) Handles AddDetails.Click
KMC.TabPages.Add(New DetailTab)
KMC.TabPages(tabCount).Name = "KMCDetails" & tabCount
KMC.TabPages(tabCount).Text = "KMC Details (" & tabCount & ")"
KMC.SelectedTab = KMC.TabPages(tabCount)
tabCount += 1
If tabCount = 5 Then
AddDetails.Enabled = False
End If
End Sub
End Class
Public Class DetailTab
Inherits TabPage
Public Sub New()
Controls.Add(New Details)
End Sub
End Class
Public Class Details ' The User Control Class
Public Property ISO1 as String
...
Public Property ISO40 as String
Public Sub FetchData()
ISO1 = txtISO1.text
...
ISO40 = txtISO40.text
End Sub
End Class
答案 0 :(得分:0)
如果您不确定某个特定选项卡是否包含您的usercontrol,那么您可以查询Controls集合并要求返回类型为Details的控件
Dim current = KMC.TabPages(pageIndex).Controls.OfType(Of Details)().FirstOrDefault()
if current IsNot Nothing Then
Dim text = current.ISO1
.. get the other properties here
End If
用户控件的实例保存在tabpage的Controls集合中,因此您可以检索已添加的实例查询TabPage(x)控件集合。
当然,如果您需要识别正在处理的用户控件,则可以添加用户控件本身中的某些属性(或者仅使用用户控件名称)
if current.Name = "KMCDetails1" Then
.....