好吧,这对我来说有点奇怪。我从来没用过像这样的东西。我有一个名为 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
项目图片
答:VBProject-B:MYControl Execute-C:MyControl的Project's Form3
我希望能很好地解释。谢谢你的时间。
答案 0 :(得分:2)
您可以使用
访问自定义控件所在表单的控件Me.ParentForm.Controls
可以通过
访问父母的控件,例如可以是面板Me.Parent.Controls
您使用的Me.Controls
引用了自定义控件本身拥有的控件。
我不确切知道,但是在控件的load事件中使用它时可能会出现问题,因为在自定义控件之后可能会加载父窗体的其他控件。