从Form2访问Form1上的文本框

时间:2017-01-19 13:45:23

标签: vb.net winforms visual-studio-2015

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

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

我要做的是从Form2访问Form1上的子。该子程序正在更改表单1上的文本框的值。在编译项目时,我没有收到任何错误,但是没有任何反应。

这是一个例子

Form1中:

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。我已经尝试将文本框中的修饰符属性更改为public。我试过让Form1成为父母,Form2成为一个孩子(老实说,我不太了解MDI)。所有这些结果最终都会在一个项目中进行编译,但不会给我任何结果。我的代码访问sub很好,它不会访问文本框的文本属性。

任何建议都会有所帮助。我试图以一种我可以遍历所有文本框的方式访问文本框。例如:Me.Panel.Controls(" Textbox"& i).Text =" Something"。如果可以的话,我也希望将子类保留在Form1的类中。

任何建议都会很棒!

1 个答案:

答案 0 :(得分:0)

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

只需使用:

Call Form1.test()

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

Panel1.TextBox1.Text = "Test"