您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VB >> 辅导 >> 正文    
  VisualBasic对象使用二 【注册男护士专用博客】          

VisualBasic对象使用二

www.nanhushi.com     佚名   不详 

     创建对象
    创建对象的最简单方法是在“工具箱”中双击控件。但是,对 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 中的图标。
    详细信息 上述主题意在概述对象。更详细内容,请参阅第九章“用对象编程”和第十章“用部件编程”。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。