我有3个用户控件和一个主窗体,我可以引用用户控件并使用主窗体中的方法就好了:
Dim ReviewPanel As New ReviewPanel
Controls.Add(ReviewPanel)
ReviewPanel.BringToFront()
ReviewPanel.Go(-8, 0)
但是从用户控件到主窗体的引用无法正常工作:
Private Sub SelectionPanelClick(sender As Object, e As EventArgs) Handles MyBase.Click, picCover.Click, lblTitle.Click
Dim _Main As New Form1
_Main.DisplayReview()
End Sub
代码仍然正常运行;我可以在主窗体方法中添加消息框,它们仍会显示出来。但是,没有任何视觉上的标签不会使用用户名更新。
我试图解决它并找到解决方法,但没有任何工作。
答案 0 :(得分:0)
使用ParentForm()
属性并将其强制转换为Form1:
' ... in your UserControl ...
Dim frm As Form = Me.ParentForm
If Not IsNothing(frm) AndAlso TypeOf frm Is Form1 Then
Dim f1 As Form1 = DirectCast(frm, Form1)
f1.DisplayReview()
End If