我以编程方式在 form1 上创建一个标签,并想在 form2 上调用它。
我尝试过的跟随。
表格1
将 lblAnimation 调暗为新标签
Me.Controls.Add(lblAnimation)
表格2
form1.lblAnimation.text =“测试”
但是form2上的部分不起作用。
我希望任何人都可以提供帮助。谢谢
我希望有人可以帮助我解决richt代码。
您不能“调用”
Label
,或任何其他与此相关的对象。你调用一个方法。
理论上,您可以通过与添加它的表单相同的
Label
集合来访问该 Controls
。您可以通过Name
访问它,但您尚未设置。如果您知道那是什么,您可以通过索引访问它,例如
Dim lbl = DirectCast(Form1.Controls(labelIndex), Label)
我猜你不知道索引是什么。另一种选择是循环访问该集合中的控件,并通过其他属性来识别您想要的控件,例如
For Each lbl In Fomr1.Controls.OfType(Of Label)()
If lbl.SomeProperty = someValue Then
'This is the Label you want.
End If
Next
所有这些都是非常狡猾的,你不应该这样做。您实际上应该做的是在
Form1
中编写方法,执行您需要对 Label
执行的操作,然后从其他表单调用该方法。其他形式甚至不需要知道 Label
的存在。它应该简单地将适当的数据传递给方法并让 Form1
照顾自己,例如
Public Sub DisplayInLabel(text As String)
Controls(labelIndex).Text = text
End Sub
另外,你到底为什么要在代码中创建这个
Label
?是否可以添加多个 Labels
而您事先不知道有多少个?如果是这样,您将必须弄清楚如何区分它们并找到您需要的那个。如果不是这种情况,为什么不直接将 Label
添加到设计器中的表单中,并将其 Visible
属性设置为 False
,然后调用其 Show
方法来让用户看到它呢?然后您就可以像访问任何其他Label
一样访问它,例如
Public Sub DisplayInAnimationLabel(text As String)
animationLabel.Text = text
End Sub