还有一种传递值的方法:
在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 教程 目录