VisualBasic对象使用二

2016-02-19 13:32 8 1 收藏

今天图老师小编要向大家分享个VisualBasic对象使用二教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - 编程语言 】

  创建对象
  创建对象的最简单方法是在“工具箱”中双击控件。但是,对VisualBasic中的所有可用对象以及来自其它应用程序的所有可用对象,要想充分体现它们的优势,可在运行时用VisualBasic的可编程性能创立对象。
  1.用对象变量创建对象引用
  2.用类模块“从零开始”创建自己的对象
  3.用集合对象创建自己的集合
  详细信息在其它章节将会介绍如何访问对象。例如,在第十章“用部件编程”中将讨论CreateObject和GetObject函数。
  
  使用对象变量
  除了存储值以外,变量可引用对象。如同给变量赋值一样,基于下列相同理由,可把对象赋给变量:
  1.变量名往往比变量所含的值(或者,在此情况下,所含值就是它们引用的对象)短而好记。
  2.在运行代码时,为了引用其它对象,应改变变量。
  3.引用包含对象的变量比反复引用对象本身有更高的效率。
   使用对象变量与使用常规变量一样,只不过多了把对象赋予变量这一步:
  4.首先声明变量:
  DimvariableAsclass
  5.然后把对象赋予变量:
  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.Text0Then
    frmAccountDisplay!txtAccountBalance.BackColor=0
    frmAccountDisplay!txtAccountBalance.ForeColor=255
  EndIf
  如果使用控件变量,程序就可显著缩短:
  DimBalAsTextBox
  SetBal=frmAccountDisplay!txtAccountBalance
  IfBal.Text0Then
    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中有四种一般对象:
  
  在不知道变量运行时是否引用特定类型的对象时,一般对象变量是很有用的。例如,如果要书写代码,并使之在应用程序的任何窗体中都可操作,则必须使用一般窗体变量。
  注意由于应用程序中只能有一个MDI窗体,因此不必使用一般的MDIForm类型。无论何时,一旦需要声明引用MDI窗体的窗体变量,就可用特定的MDIForm类型(或者是MDIForm1,或者是对MDI窗体的Name属性指定的任何名称),而不用一般的MDIForm类型。实际上,由于在运行应用程序前,VisualBasic就能够决定引用特定窗体类型的属性和方法,因此总应使用特定的MDIForm类型。
  只是出于完整性的考虑才提供一般的MDIForm类型;在VisualBasic的今后版本中,单个应用程序中可以拥有多个MDI窗体,这将是非常有用的。
  
  作为对象的窗体
  窗体最常用到的是构造应用程序界面,但也常常是应用程序中其它模块调用的对象。窗体与类模块关系密切。两者之间的主要区别在于,窗体是可视对象,而类模块却没有可视界面。
  
  添加自定义方法和属性
  可对窗体添加自定义方法和属性,并可从应用程序中的其它模块访问它们。为了创建窗体的新方法,请添加用Public声明的过程。
  '自定义Form1的方法。
  PublicSubLateJobsCount()
  .
  .   'statements
  .
  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关键字做什么。
  
  
  释放对对象的引用
  每个对象都使用内存和系统资源。当不再使用对象时及时释放这些资源,这是良好的编程习惯。
   用Unload从内存中卸载窗体或控件。
   用Nothing释放对象变量占用的资源。用Set语句将Nothing赋予对象变量。
  详细信息请参阅《VisualBasic6.0语言参考手册》中的“Unload事件”和“Nothing”部分。
  
  给过程传递对象
  可在VisualBasic中将对象传递给过程。在下面的代码例子中假定窗体中有一CommandButton控件:
  PrivateSubCommand1_Click()
     '调用Demo子过程,并将窗体传递给它。
    DemoForm1
  EndSub
  
  PrivateSubDemo(xAsForm1)
     '在屏幕中使窗体居中。
  x.Left=(Screen.Width-x.Width)/2
  EndSub
  可以通过引用把对象传递给参数,然后在过程内将参数设置成新对象。为了看到这一工作过程,打开工程并插入第二个窗体。在每个窗体中安放一个图片框。需要改变的属性设置值如下表所示:
  
  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中的图标。
  详细信息上述主题意在概述对象。更详细内容,请参阅第九章“用对象编程”和第十章“用部件编程”。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)->

来源:https://www.tulaoshi.com/n/20160219/1604595.html

延伸阅读
使用DataCombo和DataList控件 DataCombo和DataList控件与标准列表框和组合框控件极为相似,但有一些重要的不同之处,这种不同使这两个控件在数据库应用程序中具有极大的适应性和用武之地。这两个控件都可以被这些控件所绑定的数据库字段自动填充。此外,它们还能有选择地将一个选定的字段传递给第二个数据控件,从而适合用于创建“...
标签: Web开发
 对象直接量提供了另一种创建新对象的方式。对象直接量允许将对象描述文字嵌入到JavaScript代码中,就像将文本数据嵌入在JavaScript代码中,就像将文本数据嵌入在JavaScript代码中作为引用的字符串一样。对象直接量是由属性说明列表构成的,这个列表包含在大括号之中,其中的属性说明用逗号隔开。对象直接量中的每个属性说明列表都由一个属...
标签: Web开发
XMLHttpRequest对象 在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用JavaScript创建一个XMLHttpRequest对象。由于XMLHttpRequest不是一个W3C标准,所以可以采用多种方法使用JavaScript来创建XMLHttpRequest的实例。IE把XMLHttpRequest实现一个ActiveX对象,其他浏览器(如Firefox、Safari和Opera)把他实现为一个本地JavaScript对象...
标签: Web开发
使用浏览器的内部对象系统, 可实现与HTML文档进行交互。它的作用是将相关元素组织包装起来,提供给程序设计人员使用,从而减轻编程人的劳动,提高设计Web页面的能力。 一、浏览器对象层次及其主要作用 除了前面提到过的文档document对象外,Navigator浏览器中还提供了窗口(Window)对象以及历史(History)和位置(Location)对...
标签: Web开发
PHP5有一个单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的”继承”,包含类间的父-子关系. 另外,PHP支持对属性和方法的限制性访问. 你可以声明成员为private,不允许外部类访问. 最后,PHP允许一个子类从它的父类中重载成员. file://haohappy注:PHP4中没有private,只有public.private对于更好地实现封装很有好处. PHP5的对...

经验教程

425

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部