VisualBasic控件数据

2016-02-19 13:33 4 1 收藏

下面是个简单易学的VisualBasic控件数据教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

通过限制焦点验证控件数据
  
  Validate事件和CausesValidation属性是在允许用户将焦点移开控件之前,串联使用以确认对控件的输入的。例如:假设有几个文本框和一个Help按钮的应用程序,当每个文本框接收焦点时,您想在文本框的特殊验证准则被满足之前阻止用户移动焦点;然而,您也想允许用户在任何时候都能单击Help按钮。要做到这点,在Validate事件中设置验证准则,并将Help按钮的CausesValidation属性设置为False。假如属性设置为True(缺省设置),Validate事件将在第一个控件上发生。假如属性设置为False,在第一个控件上的Validate事件将抢先发生。
  Validate事件比LostFocus事件更适合验证数据输入项,因为LostFocus事件(按照定义)是在焦点已移动后发生。相反,通过使用Validate事件,您能防止焦点移动到另一个控件直到验证规则被满足。
  可能的使用
   数据输入项应用程序需要执行比MaskedEdit控件所提供的或在业务规则中发生的有效性验证更复杂的数据输入项有效性验证。
   窗体需要防止用户使用TAB键或加速键将控件移走,直到数据已被输入到字段中。
   在InternetExplorer中运行的ActiveX文档需要一种方法,使用户在脚本程序化地移动焦点之前完成在窗体上的操作。
  
  在Validate事件上控制焦点
  Validate事件包括一个keepfocus参数。当参数设置为True时,控件将保留焦点。这样做有效地防止了用户单击其它控件。
  
  使用控件数组
  控件数组是一组具有共同名称和类型的控件。它们的事件过程也相同。一个控件数组至少应有一个元素,元素数目可在系统资源和内存允许的范围内增加;数组的大小也取决于每个控件所需的内存和Windows资源。在控件数组中可用到的最大索引值为32767。同一控件数组中的元素有自己的属性设置值。常见的控件数组的用处包括实现菜单控件和选项按钮分组。
  注意VisualBasic包括了在运行时动态地将未引用的控件添加到Controls集合中的能力。本主题仅指在设计时通过将一个控件剪切和粘贴到窗体上添加的引用控件。有关在运行时添加控件的详细信息,请参阅参考主题“Add方法(Controls集合)”和“Add方法(Licenses集合)”。
  
  为何使用控件数组
  在设计时,使用控件数组添加控件所消耗的资源比直接向窗体添加多个相同类型的控件消耗的资源要少。当希望若干控件共享代码时,控件数组也很有用。例如,如果创建了一个包含三个选项按钮的控件数组,则无论单击哪个按钮时都将执行相同的代码。
  若要在运行时创建一个控件的新实例,则新控件必须是控件数组的成员。使用控件数组时,每个新成员继承数组的公共事件过程。
  使用控件数组机制是不可能在运行时创建新控件的,因为每个新控件都继承为数组编写好的事件过程。例如,如果窗体上有若干文本框,而且每个文本框都接受一个日期数值,则可创建一个控件数组,使所有文本框共享同一个合法性检查代码。
  
  示例应用程序:Calc.vbp
  图7.2所示的Calculator示例应用程序(列在Samples!Alink("vbsamples")目录中)包含两个控件数组——数字按钮和操作按钮。
  
  
  请注意示例是如何使用object(index)语法引用每个控件的。在创建控件时指定索引值。实际上,在设计时为一个控件指定任意的索引,这将使控件成为数组的一部分。
  Index属性区分控件数组中的元素。当数组中的一个控件识别了一个事件时,VisualBasic将调用公共事件过程并传递一个参数(Index属性的值),分辨是哪个控件识别事件。
  例如,Number_Click事件过程的第一行代码是这样的:
  PrivateSubNumber_Click(IndexAsInteger)
  如果Number(0)识别事件,则VisualBasic将0作为index参数传递,而如果Number(1)识别事件,则VisualBasic将1作为index参数传递。与索引值不同,对于Number(0)到Number(9)已执行的其余Number_Click代码都是相同的。
  
    设计时创建控件数组
  设计时有三种方法创建控件数组:
  1.将相同名字赋予多个控件。
  2.复制现有的控件并将其粘贴到窗体上。
  3.将控件的Index属性设置为非Null数值。
  注意必须在“菜单编辑器”中创建菜单控件数组。关于此项操作的详细信息,请参阅第六章,“创建用户界面”中的“运行时创建和修改菜单”。
  要通过改变控件名称添加控件数组元素:
  1.绘制控件数组中要添加的控件(必须为同一类型的控件)决定哪一个控件作为数组中的第一个元素。
  2.选定控件并将其Name设置值变成数组第一个元素的Name设置值。
  3.在数组中为控件输入现有名称时,VisualBasic将显示一个对话框,要求确认是否要创建控件数组。此时选择“确定”确认操作。
  例如,若控件数组第一个元素名为cmdCtlArr,则选择一个CommandButton将其添加到数组中,并将其名称设置为cmdCtlArr,此时将显示这样一段信息:“已经存在名为'cmdCtlArr'的控件。是否要创建控件数组?”。选择“确定”确认操作。
  用这种方法添加的控件仅仅共享Name属性和控件类型;其它属性与最初绘制控件时的值相同。
  要通过复制现存控件添加控件数组元素:
  1.绘制控件数组中的控件。
  2.当控件获得焦点时,选择“编辑”菜单中的“复制”命令。
  3.在“编辑”菜单中,选择“粘贴”命令。VisualBasic将显示一个对话框询问是否确认创建控件数组。选择“确定”确认操  作。指定给控件的索引值为1。绘制的第一个控件具有索引值0。
  每个新数组元素的索引值与其添加到控件数组中的次序相同。这样添加控件时,大多数可视属性,例如高度、宽度和颜色,将从数组中第一个控件复制到新控件中。
  
    运行时添加控件数组
  在运行时,可用Load和Unload语句添加和删除控件数组中的控件,然而,添加的控件必须是现有控件数组的元素。必须在设计时创建一个(在大多数情况下)Index属性为0的控件,然后在运行时使用如下语法:
  
  加载控件数组的新元素时,大多数属性设置值将由数组中具有最小下标的现有元素复制——本例中是索引值为0的元素。因为不会自动把Visible、Index和TabIndex属性设置值复制到控件数组的新元素中,所以,为了使新添加的控件可见,必须将其Visible属性设置为True。
  注意试图对数组中已存在的索引值使用Load语句时,VisualBasic将生成一个错误。
  重点可用Unload语句删除所有由Load语句创建的控件,然而,Unload无法删除设计时创建的控件,无论它们是否是控件数组的一部分。
  
  控件方案:在控件数组中添加和删除控件
  如何在运行时添加和删除控件,控件数组示例对此作了演示,这里,控件是选项按钮。根据这个示例,用户可以添加选项按钮,改变图片框背景颜色。
  如图7.3所示,启动窗体,然后在上面绘制一个图片框、一个标签、两个选项按钮和三个命令按钮。
  
  
  控件数组应用程序的事件
  接着,必须添加选项按钮和命令按钮的事件过程。添加窗体声明后启动应用程序:
  DimMaxIdAsInteger
  所有选项按钮共享Click事件过程:
  PrivateSuboptButton_Click(IndexAsInteger)
     picDisplay.BackColor=QBColor(Index 1)
  EndSub
  通过“添加”命令按钮的Click事件过程添加新的选项按钮。本例中,在执行Load语句前,代码将检查确认加载的选项按钮数不超过十个。加载控件之后,必须将其Visible属性设置为True。
  PrivateSubcmdAdd_Click()
     IfMaxId=0ThenMaxId=1   '设置全部选项按钮。
     IfMaxId8ThenExitSub   '只允许十个按钮。
     MaxId=MaxId 1  '按钮计数递增。
     LoadoptButton(MaxId)  '创建新按钮。
     optButton(0).SetFocus  '重置按钮选项。
     '将新按钮放置在上一个按钮下方。
     optButton(MaxId).Top=optButton(MaxId-1)._
     Top 400
     optButton(MaxId).Visible=True  '显示新按钮。
     optButton(MaxId).Caption="Option"&MaxId 1
  EndSub
  通过“删除”命令按钮的Click事件过程删除选项按钮:
  PrivateSubcmdDelete_Click()
     IfMaxId=1ThenExitSub  '保留最初的两个按钮。
     UnloadoptButton(MaxId)  '删除最后的按钮。
     MaxId=MaxId-1     '按钮计数递减。
     optButton(0).SetFocus   '重置按钮选项。
  EndSub
  通过“关闭”按钮的Click事件过程结束应用程序:
  PrivateSubcmdClose_Click()
     UnloadMe
  EndSub
  

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

来源:http://www.tulaoshi.com/n/20160219/1604614.html

延伸阅读
艾奇文件数据恢复软件   最新版的艾奇文件数据恢复软件,支持本地磁盘、移动硬盘、U盘、SD卡、TF卡、索尼记忆棒等存储设备上的文件恢复,包括图片、文件、视频等多种文件格式的恢复,扫描速度快,安全可靠,最大的特点是所见即所得,也就是扫描文件后可以预览,包括图片、文档、视频等,这样就可以有针对性的恢复,而不是将所有垃圾文...
西部数据硬盘文件数据恢复方法 对于硬盘的重要性,相信大家都了解的非常清楚,作为电脑中的必需品,它为我们的数据存储工作带来了很大的帮助。作为数据存储的核心,硬盘的数据安全问题受到人们越来越多的关注。今天,我们就针对硬盘数据丢失问题,一起来看看硬盘数据恢复原理及方法。 当使用硬盘介质上的数据文件时,通常需要依靠操...
Borland C++ Builder作为Inprise(原Borland)公司新推出的快速应用程序开发工具(RAD),具有威力强大的C++语言和快捷便利的可视化编程完美结合的优点,遗憾的是其没有直接提供像VB中的控件数组的功能,需要开发者自己编程实现。 VB中的一个控件数组可以 允许多个控件共享同一个事件句柄 提供了运行期间增加一个控件的机制 提供了一种方便的...
delphi 开发的应用中,每一个窗体都有一个对应的窗体文件(.dfm),用来记录该窗体的属性以及窗体上所有控件的属性,以便在窗体关闭后能准确地重新生成窗体。几乎所有的DELPHI参考书都没有提到过该文件的具体情况,偶尔提到,也都泛泛而谈,因为窗体文件是二进制文件,只有在DELPHI提供的编辑环境中才能看到它的本来面目,对其进行操作可能...
标签: Web开发
创建带有数据的互动网页很简单,只需通过拖拉,设置属性并储存页面即可,并不需要编程,不过Visual InterDev提供了一个完整的对象模型,可让你调整应用程序,进行用户确认并控制Web应用程序,也支持DHTML及IE4数据控制以获得更丰富的用户界面,要生成一个使用数据控件创建的简单数据输入页面的步骤如下: (1),在创建一个新的数据连接后,将...

经验教程

853

收藏

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