我是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的类中。
任何建议都会很棒!
答案 0 :(得分:0)
您正在Form1
中创建一个全新的Form2
,这就是问题所在。
只需使用:
Call Form1.test()
顺便说一句,我认为sub中的这段代码是一种更简单的设置文本的方法:
Panel1.TextBox1.Text = "Test"