通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>VB编程>>正文 新版上线![旧版]
注:打开慢时请稍等

Visual Basic对象使用 二

http://www.iyit.net  日期:2006-5-22 17:13:03  来源:网络转载   点击:
参加讨论

    创建对象
    创建对象的最简单方法是在“工具箱”中双击控件。但是,对 Visual Basic 中的所有可用对象以及来自其它应用程序的所有可用对象,要想充分体现它们的优势,可在运行时用 Visual Basic 的可编程性能创立对象。
    1.用对象变量创建对象引用
    2.用类模块“从零开始”创建自己的对象
    3.用集合对象创建自己的集合
    详细信息 在其它章节将会介绍如何访问对象。例如,在第十章“用部件编程”中将讨论 CreateObject 和 GetObject 函数。

    使用对象变量
    除了存储值以外,变量可引用对象。如同给变量赋值一样,基于下列相同理由,可把对象赋给变量:
    1.变量名往往比变量所含的值(或者,在此情况下,所含值就是它们引用的对象)短而好记。
    2.在运行代码时,为了引用其它对象,应改变变量。
    3.引用包含对象的变量比反复引用对象本身有更高的效率。
     使用对象变量与使用常规变量一样,只不过多了把对象赋予变量这一步:
    4.首先声明变量:
    Dim variable As class
    5.然后把对象赋予变量:
    Set variable = object

    声明对象变量
    声明对象变量的方法和声明其它变量一样,要用 Dim、ReDim、Static、Private和 Public。仅有的不同在于可选的 New 关键字和 Class 参数,本章后面将会对 New 关键字和 Class 参数都作介绍。语法是:
    {Dim | ReDim | Static | Private | Public} variable As [New] class
    例如,可以声明一个对象变量,它引用应用程序中的被称做 frmMain 的窗体:
    Dim FormVar As New frmMain    '声明一个类型为 frmMain
                     '的对象变量。
    也可以声明一个对象变量,它引用应用程序中的任何窗体:
    Dim anyForm As Form       '一般窗体变量。
    类似地,可以声明一个对象变量,它能够引用应用程序中的任何文本框:
    Dim anyText As TextBox      '可以引用任何文本框
                     '(但只能是一个文本框)。
    还可以声明一个对象变量,它能够引用任何类型的控件:
    Dim anyControl As Control     '一般控件变量。
    注意,可以声明一个引用应用程序中的指定窗体的窗体变量,但不能声引用特定控件的控件变量。可以声明能够引用控件的特定类型(如 TextBox或列表框)的控件变量,但不是引用那种类型的一个特定控件(如 txtEntry 或List1)。但是,可把特定的控件赋予那种类型的变量。例如,对于具有列表框 lstSample 的窗体可以这样编码:
    Dim objDemo As ListBox
    Set objDemo = lstSample

    赋值对象变量
    用 Set 语句将对象赋予对象变量:
    Set variable = object
    无论何时,只要希望对象变量引用对象,就可使用 Set 语句。
    有时可用对象变量,尤其可用控件变量直接缩短要键入的代码。例如,原来的代码是这样的:
    If frmAccountDisplay!txtAccountBalance.Text < 0 Then
      frmAccountDisplay!txtAccountBalance.BackColor = 0
      frmAccountDisplay!txtAccountBalance.ForeColor = 255
    End If
    如果使用控件变量,程序就可显著缩短:
    Dim Bal As TextBox
    Set Bal = frmAccountDisplay!txtAccountBalance
    If Bal.Text < 0 Then
      Bal.BackColor = 0
      Bal.ForeColor = 255
    End If

    特定对象类型与一般对象类型
    特定的对象变量必须引用特定类型的对象或类。特定的窗体变量只能引用应用程序中的一个窗体(尽管可在该窗体的诸多实例中引用其中之一)。与此相似,特定的控件变量只能引用应用程序中的特定类型的控件,比如TextBox 或者列表框。请看一例,打开新的工程,在窗体中放置一文本框。将下列代码添加到窗体中:
    Private Sub Form_Click ()
      Dim anyText As TextBox
      Set anyText = Text1
      anyText.Text = "Hello"
    End Sub
    运行应用程序并单击窗体。文本框的 Text 属性将变成 "Hello"。
    一般对象变量可在多种特定对象类型中引用其中一种。例如,一般窗体变量可引用应用程序中的任何窗体;一般控件变量可引用应用程序中任何窗体上的任何控件。请看一例,打开新的工程并在窗体中按任意顺序放置若干 Frame、Label 和 CommandButton 控件。将下列代码添加到窗体中:
    Private Sub Form_Click ()
      Dim anyControl As Control
      Set anyControl = Form1.Controls (3)
      anyControl.Caption = "Hello"
    End Sub
    运行程序并单击窗体。刚才放入窗体中的第三个控件的标题将变成"Hello"。
    Visual Basic 中有四种一般对象:

    在不知道变量运行时是否引用特定类型的对象时,一般对象变量是很有用的。例如,如果要书写代码,并使之在应用程序的任何窗体中都可操作,则必须使用一般窗体变量。
    注意 由于应用程序中只能有一个 MDI 窗体,因此不必使用一般的MDIForm 类型。无论何时,一旦需要声明引用 MDI 窗体的窗体变量,就可用特定的 MDIForm 类型(或者是 MDIForm1,或者是对 MDI窗体的 Name 属性指定的任何名称),而不用一般的 MDIForm 类型。实际上,由于在运行应用程序前,Visual Basic 就能够决定引用特定窗体类型的属性和方法,因此总应使用特定的 MDIForm 类型。
    只是出于完整性的考虑才提供一般的 MDIForm 类型;在 Visual Basic 的今后版本中,单个应用程序中可以拥有多个 MDI 窗体,这将是非常有用的。

    作为对象的窗体
    窗体最常用到的是构造应用程序界面,但也常常是应用程序中其它模块调用的对象。窗体与类模块关系密切。两者之间的主要区别在于,窗体是可视对象,而类模块却没有可视界面。

    添加自定义方法和属性
    可对窗体添加自定义方法和属性,并可从应用程序中的其它模块访问它们。为了创建窗体的新方法,请添加用 Public 声明的过程。
    '自定义 Form1 的方法。
    Public Sub LateJobsCount ()
    .
.    ' <statements>
    .
    End Sub
    可用下面这个语句从其它模块调用 LateJobsCount 过程:
    Form1.LateJobsCount
    创建窗体的新属性就像在窗体模块中声明一个公用变量那样简单:
    Public IDNumber As Integer
    可用下面两个语句从其它模块设置和返回 Form1 的 IDNumber 值:
    Form1.IDNumber = 3
    Text1.Text = Form1.IDNumber
    也可用 Property 过程向窗体添加自定义属性。
    详细信息 第九章“用对象编程”提供了 Property 过程的详细材料。
    注意 不必加载窗体就可调用窗体的变量或自定义方法,还可设置窗体的自定义属性。于是,不必将窗体加载到内存就可运行有关窗体的代码。同样,引用控件而不引用其属性或方法时也不会加载窗体。

    使用 New 关键字
    用 New 关键字创建新对象,这个对象被视为它的类所定义的对象。可用New 创建集合、窗体的实例以及类模块中定义的类。

    在窗体上使用 New 关键字
    在设计时创建的窗体是类。可用 New 关键字创建这个类的新实例。为了看到这一工作过程,请在窗体上画出一个命令按钮和其它几个控件。在“属性”窗口中将窗体的 Name 属性设置成 Sample。在命令按钮的 Click 事件过程中添加下列代码:
    Dim x As New Sample
    x.Show
    运行应用程序,并单击命令按钮数次。把最前面的窗体移到一边。因为窗体是具有可视界面的类,所以可看到附加副本。每个窗体在相同位置上都有相同控件,而且这些位置也正是窗体在设计时的位置。
    注意 要使窗体变量和已加载窗体的实例一直存在,请用 Static 或 Public变量,而不要用局部变量。
    也可将 New 关键字与 Set 语句并用。请试用命令按钮的 Click 事件过程中的代码:
    Dim f As Form1
    Set f = New Form1
    f.Caption = "hello"
    f.Show
    将 New 关键字和 Set 语句并用会加快运行速度,因此,这种方法值得推荐。

    对其它对象使用 New 关键字
    可用 New 关键字从类模块中定义的类创建集合和对象。试用下例说明这一工作过程。
    此例说明了 New 关键字是如何创建类的实例的。打开新工程,在 Form1 上画出一个 CommandButton 控件。从“工程”菜单中选择“添加类模块”命令,从而在工程中添加一个类模块。设置类模块的 Name 属性为ShowMe 。
    Form1 中的下列代码创建了类 ShowMe 的新实例,还调用了包含在类模块中的过程。
    Public clsNew As ShowMe
    Private Sub Command1_Click ()
      Set clsNew = New ShowMe
      clsNew.ShowFrm
    End Sub
    类模块中的 ShowFrm 过程创建类 Form1 的新实例,显示窗体,然后使其最小化。
    Sub ShowFrm ()
      Dim frmNew As Form1
      Set frmNew = New Form1
      frmNew.Show
      frmNew.WindowState = 1
    End Sub
    为了应用这个例子,请运行应用程序并单击命令按钮数次。在创建 ShowMe类的每一个新实例时将看到最小化的窗体图标出现在桌面上。
    详细信息 关于利用 New 创建对象的信息,请参阅第十章“用部件编程”。

    New 关键字的限制
    下表说明不能用 New 关键字做什么。


    释放对对象的引用
    每个对象都使用内存和系统资源。当不再使用对象时及时释放这些资源,这是良好的编程习惯。
     用 Unload 从内存中卸载窗体或控件。
     用 Nothing 释放对象变量占用的资源。用 Set 语句将 Nothing 赋予对象变量。
    详细信息 请参阅《Visual Basic 6.0语言参考手册》中的“Unload 事件”和“Nothing”部分。

    给过程传递对象
    可在 Visual Basic 中将对象传递给过程。在下面的代码例子中假定窗体中有一 CommandButton 控件:
    Private Sub Command1_Click ()
           '调用 Demo 子过程,并将窗体传递给它。
      Demo Form1
    End Sub

    Private Sub Demo (x As Form1)
           '在屏幕中使窗体居中。
    x.Left = (Screen.Width - x.Width) / 2
    End Sub
    可以通过引用把对象传递给参数,然后在过程内将参数设置成新对象。为了看到这一工作过程,打开工程并插入第二个窗体。在每个窗体中安放一个图片框。需要改变的属性设置值如下表所示:

    Form1_Click 事件过程调用 Form2 中的 GetPicture 过程,并把一个空的图片框传递给它。
    Private Sub Form_Click ()
    Form2.GetPicture Picture1
    End Sub
    Form2 中的 GetPicture 过程把 Form2 上的图片框的 Picture 属性赋予Form1 上的空图片框。
    Private objX As PictureBox
    Public Sub GetPicture (x As PictureBox)
           '将传递进来的图片框赋予对象变量。
           Set objX = x
           '将 Picture 属性值赋予 Form1 的图片框。
           objX.Picture = picture2.Picture
    End Sub
    为了应用这个例子,请运行程序并单击 Form1。在 Form1 的图片框中将看到出现了 Form2 中的图标。
    详细信息 上述主题意在概述对象。更详细内容,请参阅第九章“用对象编程”和第十章“用部件编程”。


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:Visual Basic 用户界面
下一篇:Visual Basic对象使用
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
Visual Basic 5.0中实现视频画中画
保存列表框内容为文本文件
Visual Basic 概述
Visual Basic 概述二
Visual Basic 概念
长期使用中型Access数据库的一点经验
Access数据库及其基本操作
两个未公开的ACCESS方法的使用技巧
如何确定有多少人登陆数据库?
提高拆分数据库在网上运行、编辑的速度
能否编译mdb文件到exe文件?
创建一个空数据库
隐藏 Access 窗口
获取Windows / System / Temp 目录路径
Access数据库开发技巧(一)
Visual Basic 概述
快速初始化Variant和String类型数组
VB中APP对象及其应用
Visual Basic 概述二
Visual Basic使用技巧
优秀公益广告作品欣赏(8)
java数据类型转换
Windows XP专业版IIS连接数的更改
QQ最新版下载 2006 beta2 体验新感受 
优秀公益广告作品欣赏(7)
Office2007简体中文版浮出水面 美图抢
WEB服务器配置全攻略(三)
优秀公益广告作品欣赏(6)
优秀公益广告作品欣赏(4)
优秀公益广告作品欣赏(1)
直接编辑VB中网格控制项的两种方法
硬盘分区消失,解决方法!
传统计算机病毒传播能力破坏性在提高
内存为何有“两面性”
AMD水货盒装CPU识别方法
IP地址资源2012年枯竭 部署IPv6很紧迫
古老问题有新解:世上先有鸡蛋后有鸡
Dreamweaver MX 2004从零开始(1)
利用CSS改善网站可访问性
如何让MM的脸通透可人
msn8.0下载
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息