-
vb.net教程之如何把对象传递到一个过程
如何把对象传递到一个过程
在vb.net中,用户可以传递一个对象到过程中。下面的例子建立了一个窗体类的对象并且把它传递到一个过程中去。为了使用这个例子,用户可以把一个名为button1的按钮添加到窗体中去,并把下面这些代码复制到button1_click事件中去。
Protected Sub Button1_click(Byval sender As system.Objec,_
Byval e AS System.EventArgs)
Dim frmform AS New Form1()
frmform.show()
CenterForm(frmform)
End Sub
Sub CenterForm(Byval TheForm AS Form)
'Centers the form on the screen.
Dim recForm AS rectangle=Screen.GetBounds(TheForm)
Theform.Left=CInt((RecForm.Width-Theform.Width)/2)
Theform.Top=CInt((RecForm.Height-Theform.Height)/2)
End Sub
用户可以通过先引用一个对象作为一个参数,然后,在过程中,把这个参数声明为一个新的对象。下面的例子就是把一个对象引用到其他的一个窗体的一个过程中去,步骤如下:
(1)建立一个工程,并确认里面有一个窗体名为form1;
(2)在工程中加入另一个窗体名为form2;
(3)在这两个窗体中分别加入一个picturebox控件;
(4)把在窗体form1中的picturebox命名为picturebox1;
(5)把在窗体form2中的picturebox命名为picturebox2;
(6)通过在picturebox2的属性窗口中点击"image"属性,给该属性赋一个图片,基本上所有的小图片都可以赋值给"image"属性,可以在Windows目录下找到.bmp文件。
(7)把下面的代码加入到form1的form1_click事件中去:
Protected Sub Form1_click(Byval sender As System.Object,_
Byval e AS System.EventArgs)
Dim frmform2 As New Form2()
frmform2.GetPicture(Picturebox1)
End Sub
(8)把下列代码加入到form2中去:
Public Sub GetPicture(Byval x AS PictureBox)
'Assign the passed-in picturebox to an object variable.
objX=x
'Assign the value of the Picture property to Form1 picturebox
objX.Image=picturebox2.imgae
End Sub
运行程序后,点击form1,则form2的图标将会出现在窗体form1上。form1_click过程事件调用了form2窗体的GetPicture过程,而且传递了一个空的picturebox对象。而后,在form2窗体的GetPicture过程中,把在form2窗体的picturebox的"image"属性值传到这个空的piturebox对象中,那么在form2窗体的图象就出现在form1窗体中的picturebox对象中了。
通常情况下,这些对象变量(也就是被声明为对象的变量)能够充当很多类的对象。类似地,由Visual Basic内部的各种窗体和控件声明的对象变量将包含各类里面的窗体和控件。
当用户再使用这些类型的对象变量的时候,必须根据不同的对象采取特定的方法,例如,有一些对象也许不支持一种特定的属性或方法。Visual Basic提供了两种方法可以查到对象变量属于哪个类:关键字TypeOf和函数TypeName。
关键字TypeOf只能用在If...Then...Else表述中,用户必须直接在代码中包含这个类的名称。例如:
If TypeOf MyControl Is CheckBox Then
函数TypeName则更加灵活一点,用户可以在代码的任何一个地方使用它,并且由于它以字符的形式返回类的名称,用户可以通过字符之间的比较得到它属于哪个类。
(一) 在程序运行中得到一个类的信息:
在vb.net中,用户可以传递一个对象到过程中。下面的例子建立了一个窗体类的对象并且把它传递到一个过程中去。为了使用这个例子,用户可以把一个名为button1的按钮添加到窗体中去,并把下面这些代码复制到button1_click事件中去。
Protected Sub Button1_click(Byval sender As system.Objec,_
Byval e AS System.EventArgs)
Dim frmform AS New Form1()
frmform.show()
CenterForm(frmform)
End Sub
Sub CenterForm(Byval TheForm AS Form)
'Centers the form on the screen.
Dim recForm AS rectangle=Screen.GetBounds(TheForm)
Theform.Left=CInt((RecForm.Width-Theform.Width)/2)
Theform.Top=CInt((RecForm.Height-Theform.Height)/2)
End Sub
用户可以通过先引用一个对象作为一个参数,然后,在过程中,把这个参数声明为一个新的对象。下面的例子就是把一个对象引用到其他的一个窗体的一个过程中去,步骤如下:
(1)建立一个工程,并确认里面有一个窗体名为form1;
(2)在工程中加入另一个窗体名为form2;
(3)在这两个窗体中分别加入一个picturebox控件;
(4)把在窗体form1中的picturebox命名为picturebox1;
(5)把在窗体form2中的picturebox命名为picturebox2;
(6)通过在picturebox2的属性窗口中点击"image"属性,给该属性赋一个图片,基本上所有的小图片都可以赋值给"image"属性,可以在Windows目录下找到.bmp文件。
(7)把下面的代码加入到form1的form1_click事件中去:
Protected Sub Form1_click(Byval sender As System.Object,_
Byval e AS System.EventArgs)
Dim frmform2 As New Form2()
frmform2.GetPicture(Picturebox1)
End Sub
(8)把下列代码加入到form2中去:
Public Sub GetPicture(Byval x AS PictureBox)
'Assign the passed-in picturebox to an object variable.
objX=x
'Assign the value of the Picture property to Form1 picturebox
objX.Image=picturebox2.imgae
End Sub
运行程序后,点击form1,则form2的图标将会出现在窗体form1上。form1_click过程事件调用了form2窗体的GetPicture过程,而且传递了一个空的picturebox对象。而后,在form2窗体的GetPicture过程中,把在form2窗体的picturebox的"image"属性值传到这个空的piturebox对象中,那么在form2窗体的图象就出现在form1窗体中的picturebox对象中了。
通常情况下,这些对象变量(也就是被声明为对象的变量)能够充当很多类的对象。类似地,由Visual Basic内部的各种窗体和控件声明的对象变量将包含各类里面的窗体和控件。
当用户再使用这些类型的对象变量的时候,必须根据不同的对象采取特定的方法,例如,有一些对象也许不支持一种特定的属性或方法。Visual Basic提供了两种方法可以查到对象变量属于哪个类:关键字TypeOf和函数TypeName。
关键字TypeOf只能用在If...Then...Else表述中,用户必须直接在代码中包含这个类的名称。例如:
If TypeOf MyControl Is CheckBox Then
函数TypeName则更加灵活一点,用户可以在代码的任何一个地方使用它,并且由于它以字符的形式返回类的名称,用户可以通过字符之间的比较得到它属于哪个类。
(一) 在程序运行中得到一个类的信息:
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比