还有一种传递值的方法:
在Form2中定义一个公共(Public)变量,那么我们在Form1中定义(实例化)了个Form2后,就可以使用这个变量了。
Form2中:
Public passedParameter As String Private Sub btnParameter_Click(sender As Object,e As EventArgs) Handles btnParameter.Click MessageBox.Show("传递的参数是 " & passedParameter) End Sub
Form1中:
Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click Dim S As String = "http://blog.csdn.net/uruseibest" Dim myform As Form2 myform = New Form2() myform.passedParameter = S myform.Show() End Sub
运行效果同上一节一样:
如果我们要在Form2中控制Form1呢?非常之遗憾,必须要求Form1实例化,但是实例化后就不是我们现在的Form1了。
是不是就没有办法呢?
NO
我们添加一个Module,右键点击解决方案资源管理器项目名称那里,选择新建项,
选择模块,由于我这里只是简单举例,就是用默认名称就可以了。
模块中加入如下代码:
Module Module1 Public FormNew1 As Form1 Sub main() FormNew1 = New Form1 FormNew1.ShowDialog() End Sub End Module
在项目属性窗口中,去掉“启用应用程序框架”的勾,然后启动对象选择“Sub Main":
在Form1中加入如下代码:
Public Sub changeButton1() Button1.Text = "成功" End Sub
在Form2中加入一个按钮,按钮单击代码:
Private Sub Button2_Click(sender As Object,e As EventArgs) Handles Button2.Click Call FormNew1.changeButton1() ‘调用Form1中的方法 FormNew1.Button1.Width = 200 '直接修改Form1中的按钮宽度 End Sub
既可以调用Form1的子过程,也可以直接修改Form1窗体、控件的属性。
学习更多vb.net知识,请参看 vb.net 教程 目录