VisualBasic属性、方法和事件五
Images 应用程序中的事件
Image 应用程序对事件的响应如下:
1.每一个 Image 控件的 Click 事件使 Shape 控件的 Left 属性与它自己的 Left 属性相同,并将图形移到 Image 的顶端。
2.调用 PictureBox 的 Cls 方法清除 StatusBar 的当前标题。
3.调用 PictureBox 的 Print 方法在 StatusBar 上打印新标题。
Image 控件 Click 事件的代码如下:
Private Sub imgHeart_Click()
shpCard.Left = imgClub.LeftpicStatus.Cls
picStatus.Print "Selected: Club"
shpCard.Visible = True
End Sub
注意,Click 事件代码中第一行利用 = 操作符为 Shape 控件的 Left 属性赋一个值 (让它等于 Image 控件的 Left 属性)。下面两行调用方法,因而不需要操作符。在第三行中,值 ("Selected: Club") 是 Print 方法的一个参数。
该应用代码中还有一行很重要;它在 Form Load 事件中。
shpCard.Visible = False
将 Shape 控件的 Visible 属性设为 False,Shape 控件被隐藏起来直至单击第一幅 Image。
在 Image 控件 Click 事件的最后一步将 Visible 属性设为True。
详细信息 关于属性、方法和事件详细信息,请参阅第五章“编程基础”。
附加控件
Visual Basic 工具箱还包含几个其它的标准控件。有些控件可用来处理外部数据库中的大量数据。有些控件可用来访问 Windows 文件系统。还有其它一些控件难以分类,但却十分有用。
在 Visual Basic 应用程序中还可使用 ActiveX 控件,以前称为自定义控件或 OLE 控件,用法与使用标准控件一样。Visual Basic 的专业版和企业版中的若干 ActiveX 事件同样具有创建自定义控件的功能。可以想像,加上大量厂商制作的附加 ActiveX 控件,几乎可以完成任何工作。
详细信息 关于使用 ActiveX 控件的详细信息,请参阅第四章“工程的管理”。
数据访问控件
现代商业中,大多数信息存放于一个或多个中央数据库中 。 Visual Basic 提供了多种数据访问控件,可以访问多数流行的数据库,如 Microsoft Access和 SQL 服务器。
1.ADO Data 控件用来连接数据库。可把它看成是数据库与窗体中其它控件之间的一个管道线。Data 控件的属性、方法和事件允许从应用程序内部定位和处理外部数据。
2.DataList 控件与 ListBox 控件相似。DataList 控件与ADO Data 控件一起使用时,它将自动被来自外部数据库某一字段的数据清单填充。
3.DataCombo 控件如同 DBList 和 TextBox 的组合。TextBox 区域内选中的文本可以编辑,变更出现在底层数据库中。
4.DataGrid 控件显示在网格或表中的数据。与ADO Data 控件一起使用时,它显示来自于外部数据库多个字段的完全可编辑数据。
5.Microsoft Hierarchical FlexGrid 控件是唯一能显示数据的多个视图的控件。可把它看作网格和树或大纲控件的组合。运行时,用户可重新安排行和列以提供数据的不同视图。
详细信息 关于 Data 控件的详细信息,请参阅第七章“使用 Visual Basic 的标准控件”。
文件系统控件
Visual Basic 提供三个控件以增加应用程序中的文件处理能力。通常,这些控件在一起使用以查看驱动器、目录和文件。有一些特殊的属性和事件使它们相互联系。
DriveListBox 控件看起来像 ComboBox 。它提供下拉式驱动器清单,用户可以从中作出选择。
DirListBox 与 ListBox 控件相似,但它具有显示当前所选驱动器目录清单的内置能力。
FileListBox 控件看起来像显示所选目录的文件名清单的 ListBox。
注意 这些控件主要是为在早期 Visual Basic 版本中创建的应用程序的向下兼容性而提供的。CommonDialog 控件提供处理文件访问的简单方法。关于 CommonDialog 控件的详细信息,请参阅本章后面的“其它控件”。
其它控件
Visual Basic 还提供了其它几个标准控件。每个控件都服务于唯一的目的。
Timer 控件可以在应用中以重复时间间隔产生一个事件。这对不需要与用户交互的代码的执行非常有用。
OLE 容器控件很容易为应用程序增加链接和嵌入等功能。通过 OLE 容器控件,可以提供对任何 OLE——可用的应用程序(如 Microsoft Excel、Word 和其它许多应用程序)的功能的访问,。
CommonDialog 控件在应用程序中增加内置对话框 ,用来选择文件、颜色、字体和打印函数。
详细信息 关于标准控件的附加信息,请参阅第七章“使用 Visual Basic 的标准控件”。
焦点概述
焦点是接收用户鼠标或键盘输入的能力。当对象具有焦点时,可接收用户的输入。在 Microsoft Windows 界面,任一时刻可运行几个应用程序,但只有具有焦点的应用程序才有活动标题栏,才能接受用户输入。在有几个TextBox 的 Visual Basic 窗体中,只有具有焦点的 TextBox 才显示由键盘输入的文本。
当对象得到或失去焦点时,会产生 GotFocus 或 LostFocus 事件。窗体和多数控件支持这些事件。
下列方法可以将焦点赋给对象。
运行时选择对象。
运行时用快捷键选择对象。
在代码中用 SetFocus 方法。
有些对象,它是否具有焦点是可以看出来的。例如,当命令按钮具有焦点时,标题周围的边框将突出显示(见图 3.19)。
只有当对象的 Enabled 和 Visible 属性为 True 时,它才能接收焦点。Enabled 属性允许对象响应由用户产生的事件,如键盘和鼠标事件。Visible属性决定了对象在屏幕上是否可见。
注意 只有不包含任何可接收焦点的控件的窗体,才能接收焦点。
控件的 Validate 事件
控件也有一个 Validate 事件,在控件失去焦点前发生。然而,仅当即将接受焦点的控件的 CausesValidation 属性设置为 True 时该事件发生。在许多情况下,由于Validate 事件发生在失去焦点之前,因此对数据验证来说它比 LostFocus 事件更适用。详细信息,请参阅第七章“使用 Visual Basic 标准控件”中的“通过限制焦点验证控件数据”。
不能接受焦点的控件
有些控件,例如轻量控件,不能接受焦点。轻量控件包含下面的控件:
Frame 控件
Image 控件
Label 控件
Line 控件
Shape 控件
此外,运行时不可见的控件,如 Timer 控件,不能接受焦点。