vb.net 教程 3-2 窗体编程之窗体 4
发布时间:2020-12-17 07:34:17 所属栏目:百科 来源:网络整理
导读:本节继续谈谈窗体传递参数 假设我要将Form1中的数据传递到Form2,可以采用以下方法: 首先理解一下:Form2其实是个类 不信,可以仔细打开Form2的代码,看看默认代码第一句是不是 “Public Class Form2”。 我们更深入的了解一下,在解决方案资源管理器,按下
本节继续谈谈窗体传递参数
假设我要将Form1中的数据传递到Form2,可以采用以下方法:
首先理解一下:Form2其实是个类
不信,可以仔细打开Form2的代码,看看默认代码第一句是不是 “Public Class Form2”。 我们更深入的了解一下,在解决方案资源管理器,按下“显示所有文件”,下图1红色框内的按钮。
展开“Form2.vb”一项,可以看到有个“Form2.Designer.vb”,双击打开此项的代码,可以看到:
第三句代码:Inherits System.Windows.Forms.Form 可见,我们建立的窗体(不仅仅Form2)都从 System.Windows.Forms.Form 继承来的。
回到之前Form2的代码,在
Public Class Form2 End Class 内输入 Private Sub New() 按下回车,OK,可以看到vs自动添加了代码进去: Private Sub New() ' 此调用是设计器所必需的。 InitializeComponent() ' 在 InitializeComponent() 调用之后添加任何初始化。 End Sub 我们需要加上一个窗体私有变量,在New过程加上参数: Dim passedParameter As String Private Sub New(ByVal passParameter As String) ' 此调用是设计器所必需的。 InitializeComponent() ' 在 InitializeComponent() 调用之后添加任何初始化。 passedParameter = passParameter End Sub
注意:
1、我们需要在InitializeComponent()后面增加代码
2、不能删除InitializeComponent(),否则会影响窗口的设计
3、在InitializeComponent()上点击鼠标右键,选择“转到定义”,可以看到跳转到了之前所说的“Form2.Designer.vb”代码,并且提示”Windows 窗体设计器所必需的可以使用 Windows 窗体设计器修改它。不要使用代码编辑器修改它。“
回到Form1的代码:
我在《
vb.net 教程 3-2 窗体编程之窗体 1》曾经用过如下代码
Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click Form2.Show() Form2.ControlBox = False End Sub
代码成功运行,并且将Form2的图标、最大化、最小化、关闭按钮都隐藏了。
再看看现在的代码:
可以看到,vs提示我们这段代码发生了错误,具体的错误信息:
怎么会这样呢?
我的理解:因为之前的Form2没有添加 New 过程,vs在编译后自己加了个New过程进去,但是我们现在给New加入了参数,显然在代码里面我们并没有传递参数给New,所以就会发生错误。所以我在《
vb.net 教程 3-2 窗体编程之窗体 1》也说过,不推荐上述的代码,当然这个也涉及效率问题,并非绝对。
修改代码如下:
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(S) myform.Show() End Sub
这次成功了,看看运行结果:
学习更多vb.net知识,请参看
vb.net 教程 目录
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |