Vb.net VB 2008+;:如何获取用户控件的文本';FlowLayoutPanel中的文本框

Vb.net VB 2008+;:如何获取用户控件的文本';FlowLayoutPanel中的文本框,vb.net,list,properties,user-controls,flowlayoutpanel,Vb.net,List,Properties,User Controls,Flowlayoutpanel,我有一个VisualBasic程序,我通过按下主窗体(frmMain)上的按钮打开一个小窗口(frmChild)。在frmChild中有一个FlowLayoutPanel,我在其中根据字符串列表的长度和值添加UserControls。UserControl由一个标签和一个文本框组成 完成“设计”工作(例如,调整窗口大小)。我的问题是获取用户在UserControl的文本框中写入的文本。我想再次在列表中写入字符串,以便在frmMain中使用此列表 我的用户控件属性: Public WriteOnl

我有一个VisualBasic程序,我通过按下主窗体(frmMain)上的按钮打开一个小窗口(frmChild)。在frmChild中有一个FlowLayoutPanel,我在其中根据字符串列表的长度和值添加UserControls。UserControl由一个标签和一个文本框组成

完成“设计”工作(例如,调整窗口大小)。我的问题是获取用户在UserControl的文本框中写入的文本。我想再次在列表中写入字符串,以便在frmMain中使用此列表

我的用户控件属性:

Public WriteOnly Property LblTxt As String
    Set(value As String)
        Label.Text = value
    End Set
End Property

Public Property TBoxTxt As String
    Get
        Return TextBox.Text
    End Get
    Set(value As String)
        TextBox.Text = value
    End Set
End Property
    Dim z As Integer = 0

    For Each item As String In frmMain.lstNames
        Dim uC As New UserControl
        z += 1
        With uC
            .Name = "TextBox" & z
            .LblTxt = item
        End With
        FlowLayoutPanel1.Controls.Add(uC)
    Next
添加用户控件的代码:

Public WriteOnly Property LblTxt As String
    Set(value As String)
        Label.Text = value
    End Set
End Property

Public Property TBoxTxt As String
    Get
        Return TextBox.Text
    End Get
    Set(value As String)
        TextBox.Text = value
    End Set
End Property
    Dim z As Integer = 0

    For Each item As String In frmMain.lstNames
        Dim uC As New UserControl
        z += 1
        With uC
            .Name = "TextBox" & z
            .LblTxt = item
        End With
        FlowLayoutPanel1.Controls.Add(uC)
    Next
我的问题分为以下几个主要部分:

如何获取位于FlowLayoutPanel中并在运行时创建的UserControl文本框的文本

提前感谢阅读:)

编辑: 我想我的孩子需要这样的东西

For Each item As Object in FlowLayoutPanel.Controls
   lstOtherNames.Add(item.TBoxTxt) 
Next

myUserControl.TBoxTxt
myUserControl.TBoxTxt
不起作用吗?文本框文本是公共的..或者是在FLP中查找用户控件的问题?您通过谈论用户控件来混淆您的问题。如果改为添加文本框,则会出现完全相同的问题。您可以迭代FlowLayoutPanel1.Controls以找到它们。或者只是不要忘记它们并保留一个列表(MyUserControl)。请考虑DATAGIDVIEW,而不是BTW.那么,你从哪里找到它们,表单代码?你提到的
findForm
findControl
听起来像是你想让这些生物彼此交谈(宿主表单确实需要找到自己)?但是“我的代码”在哪里??当然,表单和用户控件中都有代码。不清楚您想从何处执行此操作,因为我说过类似于
。如果表单中有“我的代码”,则不需要findform
。我仍然迷路,因为您不会给出任何上下文。1) “textBox”对于usercontrol来说是个坏名字,因为它们会与常规文本框混淆。2) 从承载UCs的表单中,您可以使用
me.Controls.Find(searchName,True)
这将搜索子控件的名称,或者只搜索FLP的控件集合的名称。您还可以将UCS的名称保存在(字符串)列表中。您不应该在UC中找到任何内容,因为文本是作为属性公开的