如何从自定义控件中访问表单控件

时间:2011-12-06 16:33:25

标签: vb.net

好吧,这对我来说有点奇怪。我从来没用过像这样的东西。我有一个名为 VBProject 的表单它有两个TextBox和一个名为 MyControl 的自定义控件,它在另一个项目中创建。 MyControl 的项目里面有一个名为 Form3 的表单。当我的控件加载后,它需要找到我的 VBProject 中的所有控件,并将它们添加到列表框中,该列表位于 Form3 中。然后显示 Form3 。最后 ListView 需要显示文本框的名称和文本,但它不显示任何内容。这是我的代码:

  

MyControl的Load_Event:

Dim i As Integer = 0
MessageBox.Show("Control Count:" + Me.Controls.Count.ToString)
For Each MyObject In Me.Controls
    If TypeOf MyObject Is TextBox Then
        MessageBox.Show("Found a textbox")
        Dim lviNew As New ListViewItem
        lviNew.Text = i.ToString()
        lviNew.SubItems.Add(MyObject.Name)
        lviNew.SubItems.Add(MyObject.Text)
        Form3.SetVal(lviNew)
        i += 1
    End If
Next
Form3.Show()
  

Form3中的SetVal函数

Public Sub SetVal(ByVal lviNew As ListViewItem)
    lstName.Items.Add(lviNew)
End Sub

项目图片

enter image description here

答:VBProject-B:MYControl Execute-C:MyControl的Project's Form3

我希望能很好地解释。谢谢你的时间。

1 个答案:

答案 0 :(得分:2)

您可以使用

访问自定义控件所在表单的控件
Me.ParentForm.Controls

可以通过

访问父母的控件,例如可以是面板
Me.Parent.Controls

您使用的Me.Controls引用了自定义控件本身拥有的控件。

我不确切知道,但是在控件的load事件中使用它时可能会出现问题,因为在自定义控件之后可能会加载父窗体的其他控件。