vb.net vs 2015 中的调用函数

call function in vb.net vs 2015

我有 Form1 和 Form2。我想从 Form2 调用 Form1 中的函数 但它不工作。我使用 Visual Studio 2015.

Public Class Form1
Sub New()
    ' This call is required by the designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim form As New Form2
    form.Show()
End Sub

Public Sub Test()
    TextBox1.Text = "Hello"
End Sub
End Class

Public Class Form2
Sub New()
    ' This call is required by the designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim form As New Form1
    form.Test()
End Sub
End Class

这是怎么回事,您正在创建另一个 Form1 并在 Form2 中单击按钮,它不是您的父表单。创建的时候需要指定Form2的Owner,然后才能引用回来。像这样:

表格 1:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim form As New Form2
        form.Show(Me) 'I am assigning Form2's Owner here
    End Sub

    Public Sub Test()
        TextBox1.Text = "Hello"
    End Sub

End Class

Form2

Public Class Form2
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        CType(Me.Owner, Form1).Test() 'Casting Form2's Owner to Form1 to access your sub

    End Sub

End Class