VB编程基础教程17C创建对象解析.docx

上传人:b****6 文档编号:15601687 上传时间:2023-07-06 格式:DOCX 页数:9 大小:18.80KB
下载 相关 举报
VB编程基础教程17C创建对象解析.docx_第1页
第1页 / 共9页
VB编程基础教程17C创建对象解析.docx_第2页
第2页 / 共9页
VB编程基础教程17C创建对象解析.docx_第3页
第3页 / 共9页
VB编程基础教程17C创建对象解析.docx_第4页
第4页 / 共9页
VB编程基础教程17C创建对象解析.docx_第5页
第5页 / 共9页
VB编程基础教程17C创建对象解析.docx_第6页
第6页 / 共9页
VB编程基础教程17C创建对象解析.docx_第7页
第7页 / 共9页
VB编程基础教程17C创建对象解析.docx_第8页
第8页 / 共9页
VB编程基础教程17C创建对象解析.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VB编程基础教程17C创建对象解析.docx

《VB编程基础教程17C创建对象解析.docx》由会员分享,可在线阅读,更多相关《VB编程基础教程17C创建对象解析.docx(9页珍藏版)》请在冰点文库上搜索。

VB编程基础教程17C创建对象解析.docx

VB编程基础教程17C创建对象解析

VB编程基础教程17–创建对象

收藏到QQ书签[程序乐园]

创建对象的最简单方法是在“工具箱”中双击控件。

但是,对visualbasic中的所有可用对象以及来自其它应用程序的所有可用对象,要想充分体现它们的优势,可在运行时用visualbasic的可编程性能创立对象。

用对象变量创建对象引用。

用类模块“从零开始”创建自己的对象。

用集合对象创建自己的集合。

详细信息其它章节会介绍如何访问对象。

例如,在“用部件编程”中将讨论createobject和getobject函数。

使用对象变量

除了存储值以外,变量可引用对象。

如同给变量赋值一样,基于下列相同理由,可把对象赋给变量:

变量名往往比变量所含的值(或者,在此情况下,所含值就是它们引用的对象)短而好记。

在运行代码时,为了引用其它对象,应改变变量。

引用包含对象的变量比反复引用对象本身有更高的效率。

使用对象变量与使用常规变量一样,只不过多了把对象赋予变量这一步:

首先声明变量:

dimvariableasclass

然后把对象赋予变量:

setvariable=object

声明对象变量

声明对象变量的方法和声明其它变量一样,要用dim、redim、static、private和public。

仅有的不同在于可选的new关键字和class参数,本章后面将会对new关键字和class参数都作介绍。

语法是:

{dim|redim|static|private|public}variableas[new]class

例如,可以声明一个对象变量,它引用应用程序中的被称做frmmain的窗体:

dimformvarasnewfrmmain„声明一个类型为frmmain

‟的对象变量。

也可以声明一个对象变量,它引用应用程序中的任何窗体:

dimanyformasform„一般窗体变量。

类似地,可以声明一个对象变量,它能够引用应用程序中的任何文本框:

dimanytextastextbox‟可以引用任何文本框

„(但只能是一个文本框)。

还可以声明一个对象变量,它能够引用任何类型的控件:

dimanycontrolascontrol‟一般控件变量。

注意,可以声明一个引用应用程序中的指定窗体的窗体变量,但不能声明引用特定控件的控件变量。

可以声明能够引用控件的特定类型(如textbox或列表框)的控件变量,但不是引

用那种类型的一个特定控件(如txtentry或list1)。

但是,可把特定的控件赋予那种类型的变量。

例如,对于具有列表框lstsample的窗体可以这样编码:

dimobjdemoaslistbox

setobjdemo=lstsample

赋值对象变量

用set语句将对象赋予对象变量:

setvariable=object

无论何时,只要希望对象变量引用对象,就可使用set语句。

有时可用对象变量,尤其可用控件变量直接缩短要键入的代码。

例如,原来的代码是这样的:

iffrmaccountdisplay!

txtaccountbalance.text<0then

frmaccountdisplay!

txtaccountbalance.backcolor=0

frmaccountdisplay!

txtaccountbalance.forecolor=255

endif

如果使用控件变量,程序就可显著缩短:

dimbalastextbox

setbal=frmaccountdisplay!

txtaccountbalance

ifbal.text<0then

bal.backcolor=0

bal.forecolor=255

endif

特定对象类型与一般对象类型

特定的对象变量必须引用特定类型的对象或类。

特定的窗体变量只能引用应用程序中的一个窗体(尽管可在该窗体的诸多实例中引用其中之一)。

与此相似,特定的控件变量只能引用应用程序中的特定类型的控件,比如textbox或者列表框。

请看一例,打开新的工程,在窗体中放置一文本框。

将下列代码添加到窗体中:

privatesubform_click(

dimanytextastextbox

setanytext=text1

anytext.text=“hello”

endsub

运行应用程序并单击窗体。

文本框的text属性将变成“hello”。

一般对象变量可在多种特定对象类型中引用其中一种。

例如,一般窗体变量可引用应用程序中的任何窗体;一般控件变量可引用应用程序中任何窗体上的任何控件。

请看一例,打开新的工程并在窗体中按任意顺序放置若干frame、label和commandbutton控件。

将下列代码添加到窗体中:

privatesubform_click(

dimanycontrolascontrol

setanycontrol=form1.controls(3

anycontrol.caption=“hello”

endsub

运行程序并单击窗体。

刚才放入窗体中的第三个控件的标题将变成“hello”。

visualbasic中有四种一般对象:

一般对象类型可引用的对象

form应用程序中的任何窗体(包括mdi子窗体和mdi窗体)。

control应用程序中的任何控件。

mdiform应用程序中的mdi窗体(如果应用程序有mdi窗体的话)。

object任何对象。

在不知道变量运行时是否引用特定类型的对象时,一般对象变量是很有用的。

例如,如果要书写代码,并使之在应用程序的任何窗体中都可操作,则必须使用一般窗体变量。

注意由于应用程序中只能有一个mdi窗体,因此不必使用一般的mdiform类型。

无论何时,一旦需要声明引用mdi窗体的窗体变量,就可用特定的mdiform类型(或者是

mdiform1,或者是对mdi窗体的name属性指定的任何名称),而不用一般的mdiform类型。

实际上,由于在运行应用程序前,visualbasic就能够决定引用特定窗体类型的属性和方法,因此总应使用特定的mdiform类型。

只是出于完整性的考虑才提供一般的mdiform类型;在visualbasic的今后版本中,单个应用程序中可以拥有多个mdi窗体,这将是非常有用的。

作为对象的窗体

窗体最常用到的是构造应用程序界面,但也常常是应用程序中其它模块调用的对象。

窗体与类模块关系密切。

两者之间的主要区别在于,窗体是可视对象,而类模块却没有可视界面。

添加自定义方法和属性

可对窗体添加自定义方法和属性,并可从应用程序中的其它模块访问它们。

为了创建窗体的新方法,请添加用public声明的过程。

„自定义form1的方法。

publicsublatejobscount(

.

.‟

.

endsub

可用下面这个语句从其它模块调用latejobscount过程:

form1.latejobscount

创建窗体的新属性就象在窗体模块中声明一个公用变量那样简单:

publicidnumberasinteger

可用下面两个语句从其它模块设置和返回form1的idnumber值:

form1.idnumber=3

text1.text=form1.idnumber

也可用property过程向窗体添加自定义属性。

详细信息“用对象编程”提供了property过程的详细材料。

注意不必加载窗体就可调用窗体的变量或自定义方法,还可设置窗体的自定义属性。

于是,不必将窗体加载到内存就可运行有关窗体的代码。

同样,引用控件而不引用其属性或方法时也不会加载窗体。

使用new关键字

用new关键字创建新对象,这个对象被视为它的类所定义的对象。

可用new创建集合、窗体的实例以及类模块中定义的类。

在窗体上使用new关键字

在设计时创建的窗体是类。

可用new关键字创建这个类的新实例。

为了看到这一工作过程,请在窗体上画出一个命令按钮和其它几个控件。

在“属性”窗口中将窗体的name属性设置成sample。

在命令按钮的click事件过程中添加下列代码:

dimxasnewsample

x.show

运行应用程序,并单击命令按钮数次。

把最前面的窗体移到一边。

因为窗体是具有可视界面的类,所以可看到附加副本。

每个窗体在相同位置上都有相同控件,而且这些位置也正是窗体在设计时的位置。

注意要使窗体变量和已加载窗体的实例一直存在,请用static或public变量,而不要用局部变量。

也可将new关键字与set语句并用。

请试用命令按钮的click事件过程中的代码:

dimfasform1

setf=newform1

f.caption=“hello”

f.show

将new关键字和set语句并用会加快运行速度,因此,这种方法值得推荐。

对其它对象使用new关键字

可用new关键字从类模块中定义的类创建集合和对象。

试用下例说明这一工作过程。

此例说明了new关键字是如何创建类的实例的。

打开新工程,在form1上画出一个

commandbutton控件。

从“工程”菜单中选择“添加类模块”命令,从而在工程中添加一个类模块。

设置类模块的name属性为showme。

form1中的下列代码创建了类showme的新实例,还调用了包含在类模块中的过程。

publicclsnewasshowme

privatesubcommand1_click(

setclsnew=newshowme

clsnew.showfrm

endsub

类模块中的showfrm过程创建类form1的新实例,显示窗体,然后使其最小化。

subshowfrm(

dimfrmnewasform1

setfrmnew=newform1

frmnew.show

frmnew.windowstate=1

endsub

为了应用这个例子,请运行应用程序并单击命令按钮数次。

在创建showme类的每一个新实例时将看到最小化的窗体图标出现在桌面上。

详细信息关于利用new创建对象的信息,请参阅“用部件编程”。

new关键字的限制

下表说明不能用new关键字做什么。

不能用new创建不允许的代码的例子

基本数据类型的变量。

dimxasnewinteger

任何一般对象类型的变量。

dimxasnewcontrol

任何特定控件类型的变量。

dimxasnewlistbox

任何特定控件的变量。

dimxasnewlstnames

释放对对象的引用

每个对象都使用内存和系统资源。

当不再使用对象时及时释放这些资源,这是良好的编程习

惯。

用unload从内存中卸载窗体或控件。

用nothing释放对象变量占用的资源。

用set语句将nothing赋予对象变量。

详细信息请参阅语言参考中的“unload事件”和“nothing”部分。

给过程传递对象

可在visualbasic中将对象传递给过程。

在下面的代码例子中假定窗体中有一

commandbutton控件:

privatesubcommand1_click(

„调用demo子过程,并将窗体传递给它。

demoform1

endsub

privatesubdemo(xasform1

‟在屏幕中使窗体居中。

x.left=(screen.width–x.width/2

endsub

可以通过引用把对象传递给参数,然后在过程内将参数设置成新对象。

为了看到这一工作过程,打开工程并插入第二个窗体。

在每个窗体中安放一个图片框。

需要改变的属性设置值如下表所示:

对象属性设置

form2上的图片框name

picture

picture2

c:

\vb\icons\arrows\arw01dn.ico

form1_click事件过程调用form2中的getpicture过程,并把一个空的图片框传递给它。

privatesubform_click(

form2.getpicturepicture1

endsub

form2中的getpicture过程把form2上的图片框的picture属性赋予form1上的空图片框。

privateobjxaspicturebox

publicsubgetpicture(xaspicturebox

„将传递进来的图片框赋予对象变量。

setobjx=x

‟将picture属性值赋予form1的图片框。

objx.picture=picture2.picture

endsub

为了应用这个例子,请运行程序并单击form1。

在form1的图片框中将看到出现了form2中的图标。

详细信息上述主题意在概述对象。

更详细内容,请参阅“用对象编程”和“用部件编程”。

上一篇:

VB实例教程:

VB使用ADODB操做数据库--编程示例_学习大

下一篇:

VB.NET入门教程(整理

(四季平安符的分类目录[网店,淘宝]

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2