VisualBasic控件数据,第1张

VisualBasic控件数据,第2张

通过限制焦点来验证控制数据。

Validate事件和CausesValidation属性连续使用,以在允许用户将焦点从控件上移开之前确认对控件的输入。例如,假设一个应用程序有几个文本框和一个帮助按钮,当每个文本框都获得焦点时,您希望阻止用户移动焦点,直到满足文本框的特殊验证条件;但是,您也希望允许用户随时单击帮助按钮。为此,请在Validate事件中设置验证条件,并将“帮助”按钮的CausesValidation属性设置为False。如果属性设置为True(默认设置),Validate事件将在第一个控件上发生。如果属性设置为False,第一个控件上的Validate事件将首先发生。
Validate事件比LostFocus事件更适合验证数据输入,因为LostFocus事件(根据定义)发生在焦点移动之后。相反,通过使用Validate事件,可以防止焦点移动到另一个控件,直到满足验证规则。
可能使用数据输入的应用程序
需要执行比屏蔽编辑控件提供的验证或业务规则中发生的验证更复杂的数据输入验证。
在数据输入到字段之前,表单需要防止用户使用TAB键或快捷键来删除控件。
在Internet Explorer中运行的ActiveX文档需要一种方法,让用户在脚本以编程方式移动焦点之前完成对表单的操作。

验证事件上的控件焦点
验证事件包括一个keepfocus参数。当该参数设置为True时,控件将保持焦点。这有效地防止了用户单击其他控件。

使用控件数组
控件数组是一组具有通用名称和类型的控件。它们的事件过程是相同的。一个控件数组至少要有一个元素,元素个数可以在系统资源和内存允许的范围内增加;数组的大小还取决于每个控件所需的内存和Windows资源。控件数组中可用的索引值是32767。同一控件数组中的元素有自己的属性设置值。控件数组的常见用途包括菜单控件和选项按钮分组。
请注意,Visual Basic包括在运行时将未引用的控件动态添加到Controls集合中的能力。本主题仅涉及通过将控件剪切并粘贴到窗体上而在设计时添加的引用控件。有关在运行时添加控件的更多信息,请参考参考主题“添加方法(控件集合)”和“添加方法(许可证集合)”。

为什么要使用控件数组
在设计时,使用控件数组添加控件比直接向窗体添加多个同类型的控件消耗的资源少。当您希望多个控件共享代码时,控件数组也很有用。例如,如果创建一个带有三个选项按钮的控件数组,那么无论单击哪个按钮,都将执行相同的代码。
若要在运行时创建控件的新实例,新控件必须是控件数组的成员。使用控件数组时,每个新成员都继承数组的公共事件过程。
不可能使用控件数组机制在运行时创建新控件,因为每个新控件都继承了为数组编写的事件过程。例如,如果表单上有几个文本框,并且每个文本框都接受一个日期值,则可以创建一个控件数组,以便所有文本框共享相同的合法性检查代码。

示例应用:Calc.vbp
图7.2所示的计算器示例应用(在示例中列出!Alink("vbsamples ")包含两个控件数组——数字按钮和动作按钮。

请注意该示例如何使用object(index)语法引用每个控件。创建控件时指定索引值。事实上,在设计时为控件指定了任意索引,这将使控件成为数组的一部分。
index属性区分控件数组中的元素。当数组中的控件识别事件时,Visual Basic将调用公共事件过程并传递一个参数(Index属性的值)来告诉哪个控件识别该事件。
例如Number_Click事件过程中的第一行代码是这样的:
Private sub Number _ Click(index as integer)
如果Number(0)标识事件,Visual Basic将0作为索引参数传递,如果Number(1)标识事件,Visual Basic将1作为索引参数传递。与索引值不同,对于编号(0)到编号(9)已经执行的剩余Number_Click代码是相同的。

在设计时创建控件数组
在设计时创建控件数组有三种方法:
1 .给多个控件取相同的名称。
2。复制现有控件并将其粘贴到窗体上。
3。将控件的Index属性设置为非空值。
请注意,菜单控件数组必须在菜单编辑器中创建。有关此操作的详细信息,请参考第6章“创建用户界面”中的“运行时创建和修改菜单”。
通过更改控件名称添加控件数组元素:
1。绘制要添加到控件数组中的控件(必须是同一类型),并决定哪个控件是数组中的第一个元素。
2。选择控件并将其名称设置值更改为数组中第一个元素的名称设置值。
3。当您为数组中的控件输入现有名称时,Visual Basic将显示一个对话框,询问您是否要创建控件数组。选择“确定”确认操作。
例如,如果控件数组的第一个元素名为cmdclarr,请选择一个CommandButton将其添加到数组中,并将其名称设置为cmdclarr。此时会显示一条消息:“名为‘cmdclarr’的控件已经存在。是否要创建控件数组?。选择确定以确认操作。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualBasic控件数据

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情