Vb.net 从Form2访问Form1上的文本框

Vb.net 从Form2访问Form1上的文本框,vb.net,winforms,visual-studio-2015,Vb.net,Winforms,Visual Studio 2015,我是vb.net新手,如果这是一个简单的问题,请原谅我 我创建了一个类库项目,其中包含两个windows窗体,Form1和Form2。主类库具有打开Form1的事件。Form1上的按钮启动Form2。大部分代码都是Form1,如果我能帮助的话,我不想更改它 我想做的是从Form2访问Form1上的sub。该sub正在更改表单1上文本框的值。当我编译项目时,我没有得到任何错误,但是,什么也没有发生 这里有一个例子 表格1: Public Sub test() Me.Panel1.Cont

我是vb.net新手,如果这是一个简单的问题,请原谅我

我创建了一个类库项目,其中包含两个windows窗体,Form1和Form2。主类库具有打开Form1的事件。Form1上的按钮启动Form2。大部分代码都是Form1,如果我能帮助的话,我不想更改它

我想做的是从Form2访问Form1上的sub。该sub正在更改表单1上文本框的值。当我编译项目时,我没有得到任何错误,但是,什么也没有发生

这里有一个例子

表格1:

Public Sub test()

    Me.Panel1.Controls("Textbox1").Text = "Test"

End Sub
表格2:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim MainForm As New Form1
    Me.Close()
    MainForm.test()


End Sub
不要太在意我是如何建立它的,我已经尝试了大约20种不同的东西,这就是我现在的处境

我已尝试在子测试()中定义Form1。我已尝试将sub test()设置为shared。我已尝试关闭Form2并激活Form1。我已尝试将文本框上的modifiers属性更改为public。我试着让Form1成为父母,Form2成为孩子(老实说,我不太懂MDI)。所有这些结果最终都会被编译成一个项目,但不会给我任何结果。我的代码可以很好地访问sub,它不会访问文本框的text属性

任何建议都会有帮助。我正在尝试以一种可以循环访问所有文本框的方式访问这些文本框。例如:Me.Panel.Controls(“Textbox”&i.Text=“Something”。另外,如果可以的话,我想在中一的课堂上留下这个替补


任何建议都很好

您正在
Form2
中创建一个全新的
Form1
,这就是问题所在

只需使用:

调用Form1.test()

顺便说一句,我认为sub中的代码是设置文本的一种更简单的方法:


Panel1.TextBox1.Text=“Test”

为什么要从
Form2
调用方法
Test
?重要的是什么?访问
面板上的所有
文本框
<对于Panel.Controls.OfType(文本框的)(
中的每个t,您可以设置
t
的属性。