vb.net 教程 3-2 窗体编程之窗体 5

时间:2022-01-09 23:45:17

还有一种传递值的方法:

在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

运行效果同上一节一样:
vb.net 教程 3-2 窗体编程之窗体 5

如果我们要在Form2中控制Form1呢?非常之遗憾,必须要求Form1实例化,但是实例化后就不是我们现在的Form1了。

是不是就没有办法呢?

NO

我们添加一个Module,右键点击解决方案资源管理器项目名称那里,选择新建项,

vb.net 教程 3-2 窗体编程之窗体 5

选择模块,由于我这里只是简单举例,就是用默认名称就可以了。

模块中加入如下代码:

Module Module1
Public FormNew1 As Form1

Sub main()
FormNew1 = New Form1
FormNew1.ShowDialog()
End Sub
End Module

在项目属性窗口中,去掉“启用应用程序框架”的勾,然后启动对象选择“Sub Main":

vb.net 教程 3-2 窗体编程之窗体 5

在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 教程 3-2 窗体编程之窗体 5



学习更多vb.net知识,请参看 vb.net 教程 目录