打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB编程基础教程16–对象之间的关系 | 异次元软件世界
阅读文章

VB编程基础教程16–对象之间的关系

[ 程序乐园 ]

在同一窗体上放置两个命令按钮时,它们是两个具有不同 name 属性设置值(command1 和command2)的分开的对象,但都分享同一个类— 命令按钮。
它们也共享这样一个特征,即它们在同一窗体上。在本章前面已看到,窗体上的控件也包含在窗体中。这就把控件放在一个层次上。要引用控件就必须先引用窗体,就如同打电话拨号一样,首先要拨国家/地区号码或区域号码,然后再拨具体的电话号码。
这两个命令按钮也共享这样一个特征,即它们都是控件。所有控件都具有公共特性,使它们不同于窗体以及 visual basic环境中的其它对象。以下章节中将说明 visual basic 如何用集合使相关的对象分组。
对象的层次
对象层次提供了一种组织结构,它决定了对象间的相互关系以及访问它们的方法。在大多数情况下不必考虑 visual basic 对象的层次。但是:
在操作其它应用程序的对象时,应当熟悉那个应用程序的对象层次。关于定位对象层次的信息,请参阅“用部件编程”。

在使用数据访问对象时,应当熟悉数据访问对象层次。就象在 professional features 一书上的《数据访问对象指南》部分描述的那样,该书包括在 visual basic的专业版和企业版中。
在 visual basic 中,一个对象包含其它对象的一般情况时有发生。 下面我们要详细讨论。
使用对象集合
集合对象有自己的属性和方法。对象集合中的对象作为集合的成员被引用。集合中的每个成员从 0开始顺次编号;这就是成员的索引号。例如,控件集合包含已给定窗体上的所有控件 。如果对集合中的所有对象都必须执行相同操作,则可用集合简化代码。

例如,下列代码遍历控件集合,并在列表框中列出每个成员的名字。
dim mycontrol as control
for eachmycontrol in form1.controls
   ‘把每个控件的名字送到列表框。
   list1.additemmycontrol.name
next mycontrol
应用集合成员的属性与方法
有两种通用方法可用来对集合对象成员寻址:
指定成员的名称。以下两个表达式等价:
controls (“list1″)
controls!list1
利用成员的索引号:
controls (3)
一旦能够从整体上对全体成员寻址,而且还能够个别地对单个成员寻址,就可用下面随便一种方式应用属性和方法:
’将 listbox 控件的 top 属性设置为 200。
controls!list1.top = 200
-或者-
dim mycontrol as control
for each mycontrol in form1.controls()
   ‘将每一个成员的 top 属性设置为 200。
   mycontrol.top = 200
nextmycontrol
包含其它对象的对象
在 visual basic中,一些对象包含其它对象。例如,窗体通常包含一个或数个控件。把一个对象当作其它对象的容器,这样做的好处在于,在代码中引用容器即可明了要使用哪个对象。例如,在一个应用程序中可有两个不同的窗体,一个用来输入应付帐交易,另一个用来输入应收帐交易。

两个窗口可以有名为istacctno 的列表框。通过引用包含列表框的窗体就可准确指定要使用的列表框:
frmreceivable.lstacctno.additem1201
-或者-
frmpayable.lstacctno.additem 1201
visual basic中的公共集合
在 visual basic 中一个对象包含其它对象的一般情况时有发生。下表简要叙述 visual basic中最常用的集合。
集合 描述
forms 包含载入的窗体。
controls 包含窗体上的控件。
printers包含可用的打印机对象。

在 visual basic 中也可实现对象控制。
详细信息关于对象容器的详细信息,请参阅“再论编程”中的“使用集合替代数组”。关于打印机集合的信息,参阅“使用文本和图形”。关于窗体集合和控件集合的详细信息,请参阅语言参考。
容器属性
在窗体内,可用 container 属性改变对象的容器。以下控件可包含其它控件:
frame控件

picturebox 控件

toolbar 控件(仅对专业版和企业版而言)
如何在窗体上将命令按钮从一个容器移动到另一个容器,该例对此作了演示。打开新工程,并在窗体上画出 frame 控件、picturebox 控件和commandbutton 控件。
下列代码在窗体单击事件中,这些代码使计数器变量增加,并通过 select case循环使命令按钮在容器之间移动。
private sub form_click ()
   static intx asinteger
   select case intx
      case 0
      setcommand1.container = picture1
      command1.top= 0
      command1.left=0
      case 1
      set command1.container = frame1
      command1.top=0
      command1.left= 0
      case 2
      setcommand1.container = form1
      command1.top= 0
      command1.left=0
   end select
   intx = intx + 1
end sub
详细信息请参阅语言参考中的“container 属性”。
对象之间的通讯
除了在 visual basic中使用和创建对象外,还可与其它应用程序通讯并在自己的应用程序中操作其它应用程序的对象。在应用程序之间共享数据的能力是 microsoftwindows 操作系统的关键性能之一。有了 visual basic,与其它应用程序进行通讯变得极为灵活。
详细信息关于使用其它应用程序的对象及其通讯的详细信息,请参阅“用部件编程”。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VB-对象使用
《Visual Basic程序设计教程(第3版)》第1章 认识 Visual Basic
VB.NET Sub过程简单分析
][计算机]Visual Basic的基本知识
【翻译】.NET Core3.1发布
VB集成环境习题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服