Visual Basic 控件简 介
可用 Visual Basic 工具箱中的工具在窗体上绘制控件。
控件分类
Visual Basic 的控件有三种广义分类:
1.内部控件,例如 CommandButton 和 Frame 控件。这些控件都在 VisualBasic 的 .exe 文件中。内部控件总是出现在工具箱中,不象 ActiveX 控件和可插入对象那样可以添加到工具箱中,或从工具箱中删除。
2.ActiveX 控件,是扩展名为 .ocx 的独立文件,其中包括各种版本 VisualBasic 提供的控件(DataCombo, DataList 控件等等)和仅在专业版和企业版中提供的控件(例如 Listview、Toolbar、Animation 和TabbedDialog),另外还有许多第三方提供的 ActiveX 控件。
注意 具有文件扩展名 .vbx 的控件使用了老的技术,在 Visual Basic 的早期版本编写的应用程序中可以找到这些控件。当 Visual Basic 打开包含 .vbx 控件的工程时,在缺省情况下用 .ocx 控件取代 .vbx控件,当然,这只有在控件的 .ocx 版本存在时才可以。关于将控件更新为 .ocx 格式的信息,请参阅本章后面的“更新旧版 VisualBasic 控件”一节。
3.可插入的对象,例如一个包含公司所有雇员的列表的 Microsoft Excel 工作表对象,或者一个包含某工程计划信息的 Microsoft Project 日历对象。因为这些对象能添加到工具箱中,所以可把它们当作控件使用。其中一些对象还支持自动化(正式的名称为 OLE 自动化),使用这种控件就可在 Visual Basic 应用程序中编程控制另一个应用程序的对象。关于自动化的详细信息,请参阅第十章“用部件编程”中的“使用对象编程”。
详细信息 关于 Visual Basic 专业版和企业版中提供的 ActiveX 控件的详细信息,请参阅《部件工具指南》中的“使用 ActiveX 控件”。
内部控件
下表总结了 Visual Basic 工具箱中的内部控件。
注意 指针工具(工具箱中的第一个工具)可用来移动窗体和控件,并调整它们的大小。指针工具不是控件。
标准 ActiveX 控件
Visual Basic 学习版包含若干 ActiveX 控件(称为标准 ActiveX 控件),有了这些控件就可在应用程序中引入高级功能。ActiveX 控件的文件扩展名为 .ocx,可手工将它们添加到工具箱中,以便在工程中使用aq。下表总结了 Visual Basic 学习版提供的标准 ActiveX 控件。
详细信息 关于 Visual Basic 专业版和企业版中提供的 ActiveX 控件的详细信息,请参阅《部件工具指南》中的“使用 ActiveX 控件”。
添加和删除 ActiveX 控件
按照下述步骤在工具箱中添加或删除 ActiveX 控件。
要在工具箱中添加 ActiveX 控件:
1. 在“工程”菜单中选择“部件”。
2. 选定.ocx 控件名旁边的复选框,然后选择“确定”。将控件放入工具箱后,就象对待内部控件那样将它们添加到窗体上。
要删除 ActiveX 控件:
1. 在工程的窗体上删除控件的所有实例。删除工程代码中对控件的所有引用。若代码中还留有被删除控件的引用,则在编译应用程序时将显示出错信息。
2. 在“工程”菜单中选择“部件”。清除 .ocx 控件名旁边的复选框,然后选择“确定”。若工程中还有控件的实例,则将显示出错信息。
详细信息 关于在工具箱中添加或删除控件和可插入对象的详细信息,请参阅第四章,“工程的管理”中的“在工程中添加控件”。
更新旧版 Visual Basic 控件
文件扩展名为 .vbx 的 16 位旧版Visual Basic控件与此版Visual Basic不兼容。若试图加载包含 .vbx 控件的旧工程,Visual Basic 将会警告说控件不适用或不兼容,此时,可以继续加载无 .vbx 控件的工程,当然,应用程序将无法正常运行。
如果手中有包含第三方 .vbx 控件的旧版本 Visual Basic 的工程,请向控件厂商咨询有关 .ocx 替代控件的信息。
控件命名约定
第一次创建对象(窗体或控件)时,Visual Basic 将其 Name 属性设置为缺省值。例如,最初将所有命令按钮的 Name 属性都设置为 Commandn,其中 n 为 1、2、3 等等。Visual Basic 将绘制在窗体上的第一个命令按钮命名为 Command1,第二个为 Command2,第三个为 Command3。
可以保留缺省名称;但是,如果有几个同类型控件时,最好将 Name 属性改成具有描述性的名称。因为很难区分 MyForm 窗体的 Command1 按钮与 YourForm 的 Command1 按钮,所以命名约定十分有益,特别是当应用程序包含了若干窗体、标准和类模块的时候。
可以这样为控件命名:用前缀描述类,其后为控件的描述性名称。使用了命名约定,代码就可自动描述自己并使相似的对象在对象列表框中按字母顺序排列。例如,可以这样来为 CheckBox 控件命名:
chkReadOnly
为窗体和控件命名的名称:
1.必须以字母开头。
2.只能包含字母、数字和下划线字符 (_);不允许有标点符号字符和空格。
3.不能超过 40 个字符。
详细信息 关于命名约定的详细信息,请参阅附录 B,“Visual Basic 编码约定”。
使用控件值
所有控件都有一个属性,只需引用控件名而无需使用属性名就可利用这个属性来存储或获取数值,称此属性为控件的值,这是控件的最重要或最常用属性。下表列出了每个控件属性,这些属性被看成是控件值。
当控件的属性为该控件的值时,无论何时引用这个属性都不必在代码中指定属性名。例如,下行代码设置了 TextBox 控件的 Text 属性值:
Text1 = "This text is assigned to the Text property _
of Text1"
在下例中,只要用户单击文件列表框中的文件,Label1 的 Caption 属性就被设置成 File1 的 FileName 属性:
Private Sub File1_Click ()
Label1 = File1
End Sub
注意 由于使用了控件值,代码的可读性略受影响,所以本指南中的示例不使用控件值,而是明确引用控件的属性。两种方法均可用来编写代码,在不引起阅读困难时可考虑使用控件值。