2023年12月11日发(作者:)

ADO Data 控件

ADO Data 控件与内部 Data 控件以及 Remote Data控件 (RDC) 相似。ADO Data 控件使您能使用 Microsoft ActiveX Data Objects (ADO)

快速地创建一个到数据库的连接。

说明

在设计时,您可以通过首先将 ConnectionString 属性设置为一个有效的连接字符串,然后将 RecordSource 属性设置为一个适合于数据库管理者的语句来创建一个连接。您也可以将 ConnectionString 属性设置为定义连接的文件名。该文件是由“数据链接”对话框产生的,当您单击“属性”窗口中的

ConnectionString,然后单击“生成”或“选择”时,该对话框出现。

您可以通过将 DataSource 属性设置为 ADO Data 控件,把 ADO Data 控件连接到一个数据绑定的控件,例如 DataGrid、DataCombo、或 DataList 控件。

在运行时,您可以动态地设置 ConnectionString 和 RecordSource 属性来更改数据库。或者,您可以将 Recordset 属性直接设置为一个原先已经打开的记录集。

Animation 控件

Animation 控件允许创建按钮,当单击它时即显示动画,如 .avi 文件。该控件只能播放无声的 AVI 文件。此外,动画控件只能显示未压缩的或已用行程编码

(RLE) 压缩的 .avi 文件。

说明

如果尝试加载含有声音数据或格式不为控件所支持的 .avi 文件,则返回错误(错误 35752)。

在 Windows 95 中,文件复制进度栏就是使用 Animation 控件的一个实例。在执行复制操作时,纸页从一个文件夹“飞”到另一个文件夹。

CommonDialog 控件

CommonDialog 控件提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作。通过运行 Windows 帮助引擎控件还能显示帮助。 语法

CommonDialog

说明

CommonDialog 控件在 Visual Basic 和 Microsoft Windows 动态链接库

. 的例程之间提供了一个接口。为了用这个控件创建一个对话框,. 必须在 Microsoft Windows 的 SYSTEM 目录下。

在应用程序中要使用 CommonDialog 控件,可将其添加到窗体中并设置其属性。控件所显示的对话框由控件的方法确定。在运行时,当相应的方法被调用时,将显示一个对话框或是执行帮助引擎;在设计时,CommonDialog 控件是以图标的形式显示在窗体中。该图标的大小不能改变。

使用指定的方法,CommonDialog 控件能够显示下列对话。

方法

ShowOpen

ShowSave

ShowColor

ShowFont

所显示的对话框

显示“打开”对话框

显示“另存为”对话框

显示“颜色”对话框

显示“字体”对话框

ShowPrinter 显示“打印”或“打印选项”对话框

ShowHelp

在对话框接口上单击,CommonDialog 控件将自动提供与上下文有关的帮助:

调用 Windows 帮助引擎

单击标题栏中的“这是什么?”帮助按钮,然后单击想详细信息的项目。

将鼠标放在想进一步详细信息的项目上,单击右键,然后在所显示的上下文菜单中选择这是什么命令。

操作系统提供在 Windows 95 帮助弹出中显示的文本。也可以通过设置 Flags

属性,在带有 CommonDialog 控件的对话框中显示一个帮助按钮,但是,必须在这个位置提供帮助主题。

注意 无法指定对话框显示在什么地方。

详细信息 要查看各对话的帮助主题,单击“请参阅”。 CoolBar 控件

CoolBar 控件包含一个Band对象集合,用于产生与窗体相关联的可配置工具条。

说明

CoolBar 控件是容器控件,它一般包含两个或多个可以由用户重新定义大小和重新调整的 Bands。每一个 Band 包含一个单一的 Child 控件。

DataCombo 控件

DataCombo 控件是一个数据绑定组合框,它自动地由一个附加数据源中的一个字段充填;并且可选择地更新另一个数据源的一个相关表中的一个字段。

语法

DataCombo

说明

DataCombo 控件与 DBCombo 控件代码兼容。但是,DataCombo 控件被优化来同

ActiveX Data Objects (ADO)一起工作。

发行注意 DataCombo 控件和 DataList 控件一起可以在文件

中找到。要在应用程序中使用这一控件,必须把 .OCX 文件添加到工程中。当发行您的应用程序时,要把文件 安装到用户的

Microsoft Windows System 或 System32 目录下。关于如何向一个

Visual Basic 工程添加 ActiveX 控件的详细信息,请参阅“标准 ActiveX 控件”。

DataGrid控件

显示并允许对Recordset对象中代表记录和字段的一系列行和列进行数据操纵。

语法

DataGrid 说明

该数据识别的DataGrid控件看起来与Grid控件类似。但是,您可以设置DataGrid控件的DataSource属性为一个Data控件,以自动填充该控件并且从Data控件的Recordset对象自动设置其列标头。这个DataGrid控件实际上是一个固定的列集合,每一列的行数都是不确定的。

DataGrid 控件的每一个单元格都可以包含文本值,但不能链接或内嵌对象。可以在代码中指定当前单元格,或者用户可以使用鼠标或箭头键在运行时改变它。通过在单元格中键入或编程的方式,单元格可以交互地编辑。单元格能够被单独地选定或按照行来选定。

如果一个单元格的文本太长,以致于不能在单元格中全部显示,则文本将在同一单元格内折行到下一行。要显示折行的文本,必须增加单元格的Column对象的Width属性和/或DataGrid控件的RowHeight属性。在设计时,可以通过调节列来交互地改变列宽度,或在Column对象的属性页中改变列宽度。

使用DataGrid控件的Columns集合的Count属性和Recordset对象的RecordCount属性,可以决定控件中行和列的数目。DataGrid控件的可包含的行数取决于系统的资源,而列数最多可达32,767列。

选择一个单元格,则ColIndex属性被设置,也就是选择了DataGrid对象的Columns集合中的一个Column对象。Column对象的Text和Value属性引用当前单元格的内容。使用Bookmark属性能够访问当前行的数据,它能够提供对下一级Recordset对象中记录的访问。DataGrid控件中的每一列都有自己的字体、边框、自动换行、和另外一些与其他列无关的能够被设置的属性。在设计时,您可以设置列宽和行高,并且建立对用户不可见的列。您还能阻止用户在运行时改变格式。

注意 如果您在设计时设置了任何一个DataGrid列属性,就必须设置它的所有属性以保持当前的设置值。

注意 如果使用Move方法定位DataGrid控件,就必须使用Refresh方法强迫控件重画。

除了不能支持解除绑定模式以外,DataGrid控件的功能与DBGrid控件类似。

注意 该控件支持Unicode。当使用一个例如Microsoft Windows NT这样的支持Unicode的系统时,控件传递Unicode数据而无需转换。但是,在其他系统中,数据则被从ANSI转换到Unicode并转换回来。详细信息请参阅

Programmer's Guide

中的 "ANSI, DBCS, and Unicode: Definitions"。 DataList 控件

DataList 控件是一个数据绑定列表框,它自动地由一个附加数据源中的一个字段充填,并且可选择地更新另一个数据源中一个相关表的一个字段。

语法

DataList

说明

DataList 控件与 DBList 控件代码兼容,但是,DataList 控件被优化来同

ActiveX Data Objects (ADO) 一起工作。

发行注意 DataList 控件和 DataCombo 控件一起可以在文件

中找到。要在应用程序中使用这一控件,必须把 .OCX 文件添加到工程中。当发行您的应用程序时,要把文件 安装到用户的

Microsoft Windows System 或 System32 目录下。关于如何向一个

Visual Basic 工程添加 ActiveX 控件的详细信息,请参阅“标准 ActiveX 控件”。

DataRepeater 控件

DataRepeater 控件的功能是作为数据绑定用户控件的可滚动的容器。每一个控件都作为“重复的”控件出现在自己所在的行里,使用户能够一次浏览多个数据绑定用户控件。

语法

DataRepeater

说明

要使用 DataRepeater 控件,必须首先创建一个数据绑定用户控件,然后将其编译为 .ocx 文件。创建用户控件后,必须按照下面的基本步骤进行:

1. 用 Components 对话框将用户控件添加到工程。这样就确保 Visual

Basic 打包和展开向导里包括了正确的文件,而且也允许对控件的公共属性、事件和方法进行访问。

2. 在Properties 窗口中单击RepeatedControlName,然后在下拉列表中选择用户控件。 3. 将数据源(例如 ADO Data Control)添加到窗体并同数据提供者连接。

4. 将 DataRepeater 控件的 DataSource 属性设置为数据源。

5. 在 DataRepeater 控件上单击右键,然后单击 DataRepeater

Properties。

6. 单击 RepeaterBindings 选项卡。

7. 将 PropertyName 设置为适当的DataField,然后单击 Add 按钮。

DataRepeater 控件一次只显示一个用户控件(活动控件),从而节约了计算机资源。所显示的其他控件只是简单的图象,并不保持同数据源的个别连接,如同一个窗体中包含多个用户控件所发生的情况一样。

发行注意 当使用 DataRepeater 控件创建并发布您的应用程序时,应当在用户的 Microsoft Windows System 或 System32 子目录中安装

文件。Visual Basic附带的安装工具 提供了一些工具,能够帮助您编写安装程序,从而正确地安装应用程序。

DateTimePicker控件

DateTimePicker控件使您可以提供格式化的日期字段,使得进行日期选择很容易。另外,用户还可以从类似于MonthView控件的下拉式日历界面中选择日期。

语法

DTPicker

说明

DateTimePicker控件,有两种操作模式:

下拉式日历模式(缺省)—允许用户显示一种能够用来选择日期的下拉式日历。

时间格式模式—允许用户在日期显示中选择一个字段(例如:月、日、年等等),按下控件右边的上下箭头来设置它的值。

可以自定义控件的下拉式日历的外观。使用各种颜色属性,例如CalendarBackColor、CalendarForeColor、CalendarTitleBackColor、CalendarTitleForeColor和CalendarTrailingForeColor,允许创建属于您自己的颜色方案。

可以使用键盘或鼠标对控件进行浏览。下拉式日历有两个按钮使您能够滚动月份数据出入视图。 注意 DateTimePicker控件是ActiveX控件组的一部分,包含在

文件中。要在应用程序中使用DateTimePicker控件,必须将

文件加入到工程之中。发布您的应用程序时,要将

文件装入到用户的Microsoft Windows System或System32目录下。有关如何将ActiveX控件添加到工程之中的更多信息,请参阅Programmer's Guide中的"Adding controls to a Project"。

DBCombo 控件

DBCombo 控件是带有下拉列表框的与数据相连的组合框,它能自动从与它相连的

Data 控件的字段中移居,也可以有选择地更新其它 Data 控件中相关表的字段。DBCombo 的文本框部分能用来编辑选定的字段。

语法

DBCombo

说明

DBCombo 控件和标准 ComboBox 控件不同。ComboBox 控件的列表用 AddItem

方法填加数据项,而 DBCombo 控件由和它相连的 Data 控件的 Recordset 对象中的字段中的数据自动填加数据项。标准 ComboBox 控件必须用 AddItem 方法手工移居。另外,DBCombo 控件有能力更新驻留在不同的 Data 控件中的相关的

Recordset 对象的字段。

DBCombo 控件支持自动查找模式,不用附加代码能迅速在列表中定位数据项。

下面是一系列属性,用于填充、管理 DBCombo 控件以及绑定选定数据和 Data 控件。

属性

DataSource

DataField

RowSource

ListField

特性

作出选择后更新的 Data 控件名。

由 DataSource 属性指定的在 Recordset 中更新的字段名。

控件列表区字段的作为项目源使用的 Data 控件名。

由 RowSource 指定的在 Recordset 中的字段名以填充下拉列表。DBCombo 不支持 Listfield 属性的

LongBinary 型的字段。 BoundColumn 由 RowSource 指定的在 Recordset 中的 Field 名,当选择确定后回传到 DataField。DBCombo 不支持

BoundColumn 的 LongBinary 型的字段。

BoundColumn 字段的文本值。当选择确定后,该值被回传以更新由 DataSource 和 DataField 属性指定的 Recordset 对象。

在列表框中选定项目的文本值。

在运行时当用户键入字符时如何查找列表。

由 RowSource 属性指定的记录集中选定项目的书签。

在列表中可见的项目数目(全部或部分)。

一组书签,具有和 VisibleCount 属性相等的项目的最大数。

BoundText

Text

MatchEntry

SelectedItem

VisibleCount

VisibleItems

用户能通过在控件的文本框部分键入值查找 DBCombo 控件。一旦键入,该值被放入列表,当前列表项目设置成该项。如果没有找到项目,BoundText 属性设成

null。

注意 如果未使控件的边界大到至少是以答的下拉式列表的一行,在运行时列表不会显示出来。

DBList 控件

DBList 控件是和数据相连的列表框,它能自动从与之相连的 Data 控件的字段中移居,并有选择地更新其它 Data 控件中相关表的字段。

语法

DBList

说明

DBList 控件和标准 ListBox 控件不同。ListBox 控件的列表用 AddItem 方法填加数据项,而 DBList 控件由和它相连的 Data 控件的 Recordset 对象中的字段中的数据自动填加数据项。标准 ListBox 控件用 AddItem 方法手工移居。另外,DBList 控件有能力更新在不同的 Data 控件的相关的 Recordset 对象中的字段。

DBList 控件支持自动查找模式,不用附加代码能迅速在列表中定位数据项。 下面是一系列属性,用于填充、管理列表和把选定数据和 Data 控件绑定。

属性

DataSource

DataField

RowSource

ListField

特性

当选择确定时的被更新的 Data 控件名。

由 DataSource 属性指定的在 Recordset 中更新的字段名。

作为控件列表区段的项目源使用的 Data 控件名。

由 RowSource 指定的在 Recordset 中的字段名,用于填充列表。DBList 不支持 Listfield 属性的

LongBinary 型的字段。

由 RowSource 指定的在 Recordset 中的字段名,当选择确定后传回到 DataField。DBList 不支持

BoundColumn 属性的 LongBinary 型的字段。

BoundColumn 字段的文本值。当选择确定后,该值被回传以更新由 DataSource 和 DataField 属性指定的 Recordset 对象。

在列表中选定项目的文本值。

在运行时当用户键入字符时如何查找列表。

由 RowSource 属性指定的在 Recordset 中的选定项目的书签。

在列表中可见的项目数目(全部或部分)。

一组书签,具有和 VisibleCount 属性相等的项目的最大数。

BoundColumn

BoundText

Text

MatchEntry

SelectedItem

VisibleCount

VisibleItems

和用 Data 控件改变当前记录一样,如果 BoundText 属性和由

DataSource 和 DataField 属性指定的字段的值相等,那么 DBList 控件会自动强调显示列表中的某一项。

FlatScrollBar 控件

FlatScrollBar 控件是标准 Windows滚动条的对鼠标敏感版本,它提供平面格式选项。它也可以代替标准 Windows 的立体滚动条。使用滚动箭头和滚动框时,FlatScrollBar 能提供更强的交互性能。 语法

FlatScrollBar

说明

FlatScrollBar 提供三种格式选项。

和Internet Explorer 4.0 中的滚动条看起来一样的平面外观。滚动箭头和滚动条滑块都是对鼠标敏感的;当鼠标指针移动到它们上面时,它们就会改变颜色。

鼠标指针放在上面就变成立体的平面外观。当鼠标指针移动到滚动箭头和滚动条滑块上时,它们就会变成斜面,它仿照了 Microsoft Encarta

Encyclopedia中的滚动条外观。

和标准 Windows 的立体滚动条外观相同。立体模式没有鼠标敏感功能。

使用 FlatScrollBar 可以禁用两个滚动箭头之一,这就给用户提供了基于程序中其它因素的附加反馈信息,以作为在特定方向上的滚动指示。。

FlatScrollBar 按照对它的 Orientation 属性的设置,可以作为水平或垂直滚动条使用。

发布注意 FlatScrollBar 控件是 文件中一组ActiveX

控件的一部分。要在您的应用程序中使用 FlatScrollBar 控件,您必须将 文件添加到工程。当发布您的应用程序时,将 问加安装到用户的 Microsoft Windows System 或

System32 目录中。有关如何将一个ActiveX 控件添加到工程的详细信息,请参阅《程序员指南》中的“添加控件到工程”。

ImageCombo 控件

ImageCombo 控件是标准 Windows 组合框的允许绘图版本。控件列表部分中的每一项都可以有一幅图片指定给它。

除了支持图片之外, ImageCombo 还提供了一个对象和基于集合的列表控件。控件列表部分的每一项是一个不同的 ComboItem 对象,而且列表中的所有项组合起来构成 ComboItems 集合。这就使它容易一项一项地指定诸如标记文本、ToolTip文本、关键字值以及缩进等级等属性。

语法

ImageCombo 说明

使用 ImageCombo 控件可以显示一个包含图片的项目列表。每一项可以有自己的图片,也可以对多个列表项使用相同的图片。

ImageCombo 控件包括一个 ComboItem 对象的集合。一个

ComboItem 对象定义了出现在控件列表部分中的项目的各种特性。

除了用列表项目来显示图片外, ImageCombo 控件还使用集合和对象管理控件的列表部分。这使它很容易使用相似的对象和集合概念来对列表中的输入项进行操作,例如 Add、 Remove 和 Clear 方法,以及 For Each 和

< End With 结构。

注意 ImageCombo 控件是一组 ActiveX 控件的一部分,这组

ActiveX 控件能够在 文件中找到。要在您的应用程序中使用

ImageCombo 控件,必须先将 文件添加到工程中。当发布您的应用程序时,要把 文件安装到用户的 Microsoft

Windows System 或 System32 目录中。有关如何向一个工程中添加

ActiveX 控件的更多信息,请参阅《程序员指南》中的“添加控件到工程”。

ImageList 控件

ImageList 控件包含 ListImage 对象的集合,该集合中的每个对象都可以通过其索引或关键字被引用。ImageList 控件不能独立使用,只是作为一个便于向其它控件提供图象的资料中心。

语法

ImageList

说明

ImageList 控件的作用象图像的储藏室,同时,它需要第二个控件显示所储存的图像。第二个控件可以是任何能显示图像 Picture 对象的控件,也可以是特别设计的、用于绑定 ImageList 控件的 Windows 通用控件之一。这些控件包括ListView、ToolBar、TabStrip、Header、ImageCombo、和

TreeView 控件。为了与这些控件一同使用 ImageList,必须通过一个适当的属性将特定的 ImageList控件绑定到第二个控件。对于 ListView 控件,必须设置其 Icons 和 SmallIcons 属性为 ImageList 控件。对于

TreeView、TabStrip、ImageCombo、和 Toolbar 控件,必须设置

ImageList 属性为 ImageList 控件。

在设计时,可以用“ImageList 控件属性”对话框的“图像”选项卡来添加图象。在运行时,可以用 Add 方法给 ListImages 集合添加图象。 对于 Windows 通用控件来说,设计时可以用“自定义属性”对话框来指定一个

ImageList。运行时也可以用 ImageList 属性指定一个 ImageList 控件,就象下面的例子所述的那样,它可以设置 TreeView 控件的:

ist = ImageList1 '指定 ImageList 属性

重点 当与 Windows 通用控件一起使用 ImageList 控件时,在将它绑定到第二个控件之前,按照您希望的顺序将全部需要的图像插入到

ImageList。一旦 ImageList 被绑定到第二个控件 ,您就不能再删除图像了,并且也不能将图像插入到 ListImages 集合中间。但是您可以在集合的末尾添加图像。

一旦 ImageList 与某个 Windows 通用控件相关联,就可以在过程中用 Index

属性或 Key 属性的值来引用 ListImage 对象了。下面的示例设置 TreeView 控件的第三个 Node 对象的 Image 属性为 ImageList 控件中的第一个

ListImage 对象:

'使用 ImageList1 的 Index 属性值。

(3).Image = 1

'或者使用 Key 属性值。

(3).Image = "image 1" '假定 Key 值为 "image 1。"

要与其它控件(不能绑定到 ImageList 控件的控件)一起使用 ImageList 控件,将第二个控件的 Picture属性赋值给 ImageList 控件中的任何一个图像的 Picture对象。例如,下面的代码把 ListImages 集合中的第一个

ListImage 对象的 Picture 对象赋值给一个新创建的 StatusBar 面板的 Picture 属性:

Dim pnlX As Panel

Set pnlX = () '添加一个 Panel 对象。

Set e = ages(1).Picture '设置图片。

注意 将图像赋值给 Picture 对象时,必须使用 Set 语句。

可以插入任何大小的图像到 ImageList 控件中。然而,由第二个控件显示的图像大小是由一个因素决定的:第二个控件是否也是一个绑定到 ImageList 控件的 Windows 通用控件。

当 ImageList 控件被绑定到另一个 Windows 通用控件时,不同大小的图片可以被添加到控件中,但是在关联的 Windows 通用控件中显示的图象大小将受到添加到 ImageList 图像中的第一个图象大小的约束。例如,如果您添加一个 16 × 16像素的图像到 ImageList 控件中,然后将 ImageList 绑定到 TreeView 控件(用 Node 对象显示),所有存储于 ImageList 控件中的图像将以 16 × 16像素显示,即使它们的尺寸是更大或更小。 此外,如果您用 Picture 对象显示图像,则存储在 ImageList 控件中的任何图像都将以图像最初的大小显示,无论它的尺寸是更大还是更小。

发行注意 ImageList 控件是 ActiveX 控件组的一部分,该控件组可以在文件 中找到。若是在应用程序中使用 ImageList 控件,必须把文件 添加到工程中。在分行应用程序时,应把文件

安装到 Microsoft Windows 的 System 目录或者

System32 目录下。关于如何把一个 ActiveX 控件添加到工程中去的详细内容,请参阅《程序员指南》。

ListView 控件

ListView 控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。

语法

ListView

说明

可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一:

大(标准)图标

小图标

列表

报表

View 属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。

ListView 控件包括 ListItem 和 ColumnHeader 对象。ListItem 对象定义 ListView 控件中项目的各种特性,诸如:

项目的简要描述。

由 ImageList 控件提供的与项目一起出现的图标。

附加的文本片段,称作子项目,它们与显示在报表视图中的 ListItem

对象关联。 可以使用 HideColumnHeaders 属性决定是否在 ListView 控件中显示列标头。列标头可以在设计时添加,也可以在运行时添加。设计时,使用

ListView“控件属性”对话框的“列首”选项卡添加列标头。运行时,使用 Add

方法添加 ColumnHeader 对象到 ColumnHeaders 集合中。

发行注意 ListView 控件是 文件中一组 ActiveX 控件的一部分。若要在应用程序中使用 ListView 控件,则必须将 文件添加到工程中。当发行应用程序时,请将 文件安装到用户的

Microsoft Windows System 或 System32 目录下。关于如何将 ActiveX

控件添加到 Visual Basic 工程的详细信息,请参阅 Visual Basic《程序员指南》。

MAPIMessages 控件

消息应用程序接口 (MAPI) 控件允许创建邮件功能的 Visual Basic MAPI 应用程序。有 2 个 MAPI 控件:

MAPISession

MAPIMessages

MAPISession 控件启动并建立一 MAPI 会话。它也用于结束 MAPI 会话。MAPIMessages 控件允许用户执行各种消息系统功能。

MAPI 控件在运行时是不可见的。而且,对该控件不存在事件。为使用它们,必须指定适当的方法。

在用 MAPIMessages 控件建立一个消息会话后,MAPISession 控件可以执行各种消息系统功能。

为使这些控件正常工作,必须提供 MAPI 服务。MAPI 服务是符合电子邮件系统规范的。

注意 如果试图运行一个使用 MAPI 控件的程序,要确保已正确安装了 32 位

MAPI DDL,否则将不能执行象 SignOn 这样简单的 MAPI 功能。例如在 Windows

95 上,在操作系统设置期间必须安装 MAIL、或者从控制面板上单独地安装

MAIL,以正确使用 visual basic 的 MAPI 功能或 MAPI 自定义控件。

语法

MAPIMessages

说明

使用 MAPIMessages 控件可以: 

访问当前收件箱中的消息。

构成一条新消息。

添加及删除消息收件人和附件。

发送消息(无论有无支持的用户接口)。

保存、复制、和删除消息。

显示“通讯簿”对话框。

显示“详细资料”对话框。

访问附件,包括对件连接和嵌入 (OLE) 附件。

在寻址过程中,分析一个收件人的名字。

对消息执行应答,全应答和转发操作。

MAPIMessages 控件的大部分属性可分到 4 个功能区:通讯簿、文件附件、消息和收件人属性。文件附件、消息和收件人属性分别有 AttachmentIndex,MsgIndex

和 RecipIndex 属性控制。

消息缓冲区

当使用 MAPIMessages 控件时,需跟踪 2 个缓冲区:构成缓冲区和读缓冲区。读缓冲区由取自用户的收件箱的一个可索引的消息集合组成。MsgIndex

属性用于访问该集合单个消息,第一个消息的 MsgIndex 属性为 0,以后的消息依次加 1,直至集合的尾部。

消息集使用 Fetch 方法建立。该消息集包括 FetchMsgType 类型的所有消息,并且按FetchSorted 属性的规定进行分类。先前读的消息可以包括在有

FetchUnreadOnly 属性的消息集之内,或留在集合外。用户不能修改读缓冲区中的消息,但可以将消息拷贝到构成缓冲区中进行修改。

在构成缓冲区中可以创建和编辑消息。当 MsgIndex 属性值为 -1 时,构成缓冲区是活动缓冲区。许多对消息的操作只有在构成缓冲区中才是有效的,例如发送消息,用对话框发送消息,保存消息,或删除收件人和附件。

要想了解用于控件的属性和错误常量请参阅“对象浏览器”中的对象库。

MAPISession 控件

消息应用程序接口 (MAPI) 控件可以创建具有邮件功能的 Visual Basic MAPI

应用程序。有 2 个 MAPI 控件: 

MAPISession

MAPIMessages

MAPISession 控件登录并且建立一个 MAPI 会话。它也用于结束一个 MAPI 会话并退出。MAPIMessages 控件使用户可以可以执行多种消息系统功能。

语法

MAPISession

说明

登录成功后,SessionID 属性包含访问 MAPI 会话的句柄。当使用 MAPIMessages

控件时,会话句柄必须传给 MAPIMessages 控件,否则将引发错误。

MAPISession 控件在运行时是不可见的。而且,该控件不产生事件。为使用它,必须指定适当的属性和方法。

为使这些控件正常工作。必须有 MAPI 服务。MAPI 提供的 MAPI 服务是符合电子邮件系统规范的。

注意 如果试图运行一个使用 MAPI 控件的程序,必须先保证已正确安装了 32

位 MAPI DDLs,否则将不能完成象SignOn这样简单的 MAPI 功能。例如,为了正确使用 MAPI 功能或者来自 visual basic 的 MAPI 自定义控件,在 Windows

95 上必须在操作系统的安装过程中安装 Exchange,或者从控制面板上单独地安装 MAIL。

Masked Edit 控件

Masked Edit 控件提供受限制的数据输入及格式化的数据输出。它显示提示信息,说明输入的数据或显示的数据类型。此控件看起来很象工具栏中的一个图标。

文件名

类名

MaskEdBox 说明

Masked Edit 控件通常表现为一个标准文本框控件,增强了选择掩码输入和格式化输出的功能。如果没有使用输入掩码,那么,除了它的动态数据交换 (DDE) 功能,Masked Edit 控件的状态更接近于标准文本框。

如果用 Mask 属性定义输入掩码,则 Masked Edit 控件中的每一个字符位置,或者是指定类型的占位符,或者是原义字符。原义字符或 literals 可以指出所用数据的类型。例如,电话号码的区号两边的圆括号就是原义字符:(206)。

如果输入的字符与输入掩码冲突,控件将产生 ValidationError 事件。输入掩码不允许在控件中输入无效字符。

Masked Edit 控件具有三个被绑定的属性:DataChanged、DataField 和

DataSource。这意味着可将它链接到数据控件上,并可显示记录集中当前记录的字段值。Masked Edit 控件也可向记录集中写值。

如果可能的话,在读取 DataField 属性引用的字段值时,会将此值转换成 Text

属性的字符串。如果记录集是可更新的,那么字符串将转换成该字段的数据类型。

为了在定义掩码后清除 Text 属性,首先要给一个空字符串设置 Mask 属性,然后再给空字符串设置 Text 属性。

= ""

= ""

在定义输入掩码时,Masked Edit 控件的状态就不同于标准文本框了。当输入数据或移动插入点时,插入点会自动跳过原义字符。

当插入或删除字符时,插入点右侧的所有非原义字符都必须跟着移位。如果这些字符的移位导致有效性错误,则应防止插入或删除,同时会触发

ValidationError 事件。

假设 Mask 属性被定义为 "?###",而 Text 属性的当前值是 "A12"。如果想把字母“下”插入到字母 "A"的左侧,"A" 就会右移。因为要求输入掩码中的第二个值为数字,所以 "A" 使控件生成 ValidationError 事件。

Masked Edit 控件也供 Text 属性的值在运行时有效。如果 Text 属性的设置使属性自身与输入掩码冲突,则控件生成运行时错误。

可以象对标准文本框控件那样,用与那里相同的方法选择文本。当删除选定文本时,控件将移动选定文本右侧的其余字符。但是,在移位过程中可能导致有效性错误的任何剩余字符都被删除了,所以不会产生 ValidationError 事件。 通常,当把 Masked Edit 控件中的选定文本复制到剪贴板时,包括原义字符在内的全部选定文本都被送到剪贴板上。用 ClipMode 属性,可以只将用户输入的数据送到剪贴板上,而不会复制输入掩码中的原义字符。

Microsoft Internet Transfer 控件

Internet Transfer 控件支持超文本传输协议 (HTTP) 和文件传输协议 (FTP),它们是 Internet 网上使用最广泛的两种协议。

使用 HTTP 协议,可以连接全球信息网(World Wide Web)服务器,以检索 HTML

文档。使用 FTP 协议可以在 FTP 服务器上登录,以下载和加载文件。UserName

和 Password 属性可让您在要求验证身份的私有的服务器上进行登录。另外,也可以连接公用的 FTP 服务器,并下载文件。Execute 方法支持普通的 FTP

命令,如 CD 和 GET。

MonthView 控件

MonthView 控件可以用来创建一个能够让用户通过日历风格的界面查看和设置日期信息的应用程序。

语法

MonthView

说明

MonthView 控件的 Value 属性返回当前被选定的日期。

可以允许最终用户通过将 MultiSelect 属性设置为 True,并使用

MaxSelProperty 指定可选择的天数来选择一个连续的日期范围。SelStart

和 SelEnd 属性返回所选择的日期范围的第一个日期和最后一个日期。

可以用许多方法自定义一个 MonthView 控件的外观。可以使用各种颜色属性,例如 MonthBackColor、TitleBackColor、TitleForeColor 和

TrailingForeColor 为控件创建一个唯一的配色方案。

通过设置 MonthRows 和 MonthColumns 属性,可以在一个

MonthView 控件中一次显示多个月份(多至 12)。MonthRows 和

MonthColumns 属性的总数必须小于或等于 12。 注意 MonthView 控件是 ActiveX 控件组的一部分,位于

文件中。如果要在应用程序中使用 MonthView 控件,必须将 文件添加到工程中。在发布该应用程序时,需要在用户的 Microsoft Windows 的

System 或 System32 目录中安装这个 文件。有关如何将

ActiveX 控件添加到工程的详细信息,请参阅《程序员指南》中的“添加控件到工程”。

MSChart 控件

以图形方式显示数据的图表。

语法

MSChart

说明

MSChart 控件支持以下特性:

真三维表示。

支持所有主要的图表类型。

数据网格成员支持随机数据,数据数组。

MSChart 控件与数据网格(DataGrid 对象)相关连。这种数据网格是存有已图表化数据的表。数据网格中也包括用于在图表中标识系列和分类的标签。图表应用程序的设计人员通过从表单或数组中插入或输入数据,来给数据网格填充信息。

MSComm 控件

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

语法

MSComm

说明 MSComm 控件提供下列两种处理通讯的方式:

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或

Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。

在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。

每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。可以在 Windows“控制面板”中改变端口地址和中断地址。

尽管 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

属性

CommPort

Settings

PortOpen

Input

描述

设置并返回通讯端口号。

以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

设置并返回通讯端口的状态。也可以打开和关闭端口。

从接收缓冲区返回和删除字符。

Output 向传输缓冲区写一个字符串。

MSFlexGrid 控件

Microsoft FlexGrid (MSFlexGrid) 控件可以显示网格数据,也可以对其进行操作。它提供了高度灵活的网格排序、合并和格式设置功能,网格中可以包含字符串和图片。如果将它绑定到一个 Data 控件上,那么 MSFlexGrid 显示的将是只读的数据。 语法

MSFlexGrid

说明

文本和图片可以同时或者单独放在 MSFlexGrid 的任何一个单元格中。Row

和 Col 属性指定了当前的 MSFlexGrid 单元格。程序员可以在代码中改变当前单元格,用户可以在运行时使用鼠标或者箭头键改变它。Text 属性提供了当前单元格内容的参考信息。

如果单元格中的文本过长,无法全部显示在单元格的一行中,而且 WordWrap

属性被设置为 True,那么文本将回绕到同一单元格的下一行。如果需要显示被回绕的文本,需要增加单元的列宽(ColWidth 属性)或行高(RowHeight

属性)。

使用 Col 和 Row 属性可以分别确定 MSFlexGrid 中列与行的个数。

注意 在应用程序中使用 MSFlexGrid 之前,首先必须将

文件添加到工程中。如果希望自动地将文件包含在过程之中,请将它放在 Autoload 文件中。在发布应用程序的时候,应该在用户的

Microsoft Windows System 目录下安装 文件。关于如何在工程中添加 ActiveX 控件的详细说明,请参阅《Visual Basic 程序员指南》中的“标准 ActiveX 控件”。

MSHFlexGrid 控件

Microsoft Hierarchical FlexGrid (MSHFlexGrid) 控件对表格数据进行显示和操作。在对包含字符串和图片的表格进行分类、合并以及格式化时,具有完全的灵活性。当绑定到 Data 控件上时,MSHFlexGrid 所显示的是只读数据。

语法

MSHFlexGrid

说明

可以将文本、图片,或者文本和图片,放在MSHFlexGrid 的任意单元中。Row 和

Col 属性指定了MSHFlexGrid 中的当前单元。程序员可以在代码中指定当前单元,也可以在运行时,使用鼠标或者方向键来对其进行修改。Text 属性引用当前单元的内容。 如果单元的文本过长而不能在该单元中显示,而且 WordWrap 属性被设置为

True,那么文本就会换行到同一单元内的下一行。为了显示换行的文本,可能需要增加单元的列宽度(ColWidth 属性)或者行高度(RowHeight 属性)。

可以用 Cols 和 Rows 属性来决定MSHFlexGrid 控件中的列数和行数。

显示层次结构记录集

MSHFlexGrid 控件的一个主要特性是它能显示层次结构记录集—以层次结构方式显示的关系表。创建层次结构记录集的最容易的方法是使用数据环境设计器并把 MSHFlexGrid 控件的 DataSource 属性赋给数据环境。您也可以用

Shape 命令作为 ADO Data Control 的 RecordSource 在代码中创建层次结构记录,如下面的示例:

' 创建 ConnectionString.

Dim strCn As String

strCn = "Provider=MSDataShape.1;Data Source=Nwind;" & _

"Connect Timeout=15;Data Provider=MSDASQL"

' 创建 Shape 命令.

Dim strSh As String

strSh = "SHAPE {SELECT * FROM `Customers`} AS Customers " & _

"APPEND ({SELECT * FROM `Orders`} AS Orders RELATE " & _

"CustomerID TO CustomerID) AS Orders"

' 把 ConnectionString 赋给 ADO Data Control 的

' ConnectionString 属性, Shape 命令以及

' 控件的 RecordSource 属性.

With Adodc1

.ConnectionString = strCn

.RecordSource = strSh

End With

' 把 HflexGrid 控件的 DataSource 属性设置到

' ADO Data 控件。

Set urce = Adodc1

详细信息 要查找有关分层记录集的更多信息,请参阅 Hierarchical Cursors

and Data Shaping Summary. Shape 命令的详细信息可参阅 Shape Commands in

General.

发行注意 在应用程序中使用 MSHFlexGrid 控件之前,必须将

文件添加到工程中。为了将该文件自动包括到工程中,可以把它放到自动装载文件中。当发行应用程序时,应该将 文件安装到用户的 Microsoft Windows 的 System 子目录下。关于将 ActiveX 控件添加到工程中的详细信息,请参阅《Visual Basic程序员指南》中的“标准

ActiveX 控件”。

Multimedia MCI 控件

Multimedia MCI 控件管理媒体控制接口 (MCI) 设备上的多媒体文件的记录与回放。从概念上说,这种控件就是一组按钮,它被用来向诸如声卡、MIDI 序列发生器、CD-ROM 驱动器、视频 CD 播放器和视频磁带记录器及播放器等设备发出 MCI 命令。MCI 控件还支持 Windows (*.avi) 视频文件的回放。

在设计时,将 Multimedia MCI 控件加到一个窗体上,它在窗体中的外观如下图所示:

按钮被分别定义为 Prev、 Next、 Play、 Pause、 Back、 Step、 Stop、 Record

和 Eject。

说明

在允许用户从 Multimedia MCI 控件选取按钮之前,应用程序必须先将 MCI 设备打开,并在 Multimedia MCI 控件上启用适当的按钮。在 Visual Basic 中,应将 MCI Open 命令放到 Form_Load 事件中。

在使用 Multimedia MCI 控件记录音频信号之前,应打开一个新的文件。这样就可以保证记录声音的数据文件格式与系统记录格式完全兼容。在关闭 MCI 设备之前,还应该发出 MCI Save 命令,把记录的数据保存到文件中去。

Multimedia MCI 控件可以通过多种方法编程:

在运行时,控件可以是可见的或不可见的。

可以增加或完全重新定义控件中按钮的功能。

可以在一个窗体中控制多台设备。

如果想使用 Multimedia MCI 控件中的按钮,要将 Visible 和 Enabled 属性设置为 True。如果不想使用控件中的按钮,而只是想用 Multimedia MCI 控件的多媒体功能,可将 Visible 和 Enabled 属性设置为 False。无论有没有用户交互,应用程序均可控制 MCI 设备。

Multimedia MCI 控件的事件(按钮定义)是可编程的。通过开发按钮事件代码,可以增加甚至完全重新定义按钮的功能。 MCI 能在单个窗体中支持多个 Multimedia MCI 控件实例,这样就可以同时控制多台 MCI 设备。每台设备需要一个控件。

发行注意 在创建和发布使用 Multimedia MCI 控件的应用程序时,应该在用户的 Microsoft Windows System 或 System32 目录中安装并注册相应的文件。Visual Basic 的Package and Deployment向导提供了一些工具,可以帮您编写安装程序,以正确安装。

PictureClip 控件

PictureClip 控件允许选择源位图的区域,然后在窗体或图片框中显示那个区域的图象。PictureClip 控件运行时不可见。能在 PictureClip 控件中使用的都是典型位图:

文件名

类名

PictureClip

说明

PictureClip 控件为保存多图片源提供了有效的机制。可创建一个包含应用程序所需要的源位图来代替多个位图或图标。需要显示单个图标时,使用

PictureClip 控件在该源位图中选择包含该图标的区域。

例如,能使用这个控件来保存应用程序显示工具箱时所需要的全部图象。在一个

PictureClip 控件中保存工具箱所有图片比分别在各图片框中保存各个图片更有效。为此,首先要建立一个源位图,该源位图包含工具栏的所有图标。在此主题顶部的图片就是这种位图的示例。

注意 对国际本地化应用程序,资源文件有时是保存位图更有用的方法。详细信息,请参阅 Visual Basic 《程序员指南》中的第十六章“国际化”。

在源位图中指定裁剪区域有两种方法:

选择源位图的任意部分作为裁剪区域。用 ClipX 和 ClipY 属性指定裁剪区域的左上角。用 ClipHeight 和 ClipWidth 属性指定裁剪区域的范围。这种方法在想要查看位图的随机分区时是有用的。 

将源位图划分成指定的行数和列数。结果得到一个编号为 0、1、2 等等的图片单元的统一矩阵。用 GraphicCell 属性能显示各个单元。在源位图包含了要分别显示的图标板时,这种方法是有用的,如工具栏位图就是这样。

用 Picture 属性将源位图加载到 PictureClip 控件。只能将位图 (.bmp) 文件加载到 PictureClip 控件。

发行注意 当建立和发布使用 PictureClip 控件的应用程序时,应该在用户的

Microsoft Windows 的 System 或 System32 子目录中安装 。包括在 Visual Basic 中的 Setup Kit 提供工具,它用来帮助写能正确地安装应用程序的安装程序。

ProgressBar 控件

ProgressBar 控件通过从左到右用一些方块填充矩形来表示一个较长操作的进度。

语法

ProgressBar

说明

ProgressBar 控件监视操作完成的进度。

ProgressBar 控件有一个行程和一个当前位置。行程代表该操作的整个持续时间。当前位置则代表应用程序在完成该操作过程时的进度。Max 和 Min 属性设置了行程的界限。Value 属性则指明了在行程范围内的当前位置。由于使用方块来填充控件,因此所填充的数量只能是接近于 Value 属性的当前设置值。基于控件的大小,Value 属性决定何时显示下一个方块。

ProgressBar 控件的 Height 属性和 Width 属性决定所填充控件的方块的数量和大小。方块数量越多,控件就越能精确地描述操作进度。为了增加显示方块的数量,需要减少控件的 Height 或者增加其 Width。BorderStyle 属性的设置值同样影响方块的数量和大小。为了适应边框要求,方块的大小要更小一点。

可以用 ProgressBar 控件的 Align 属性把它自动定位在窗体的顶部或底部。

提示 缩小方块的大小直到其所表示的进度增加量与实际进度值达到最接近的匹配程度,应使 ProgressBar 控件的宽度至少是其长度的 13 倍。 下面的示例说明如何用一个名为 ProgressBar1 的 ProgressBar 控件,来表示对一个大数组冗长的操作进度。把一个 CommandButton 控件和一个

ProgressBar 控件放在同一窗体里。示例代码中的 Align 属性把

ProgressBar 控件定位在沿着窗体的底部。该 ProgressBar 不显示任何文本。

Private Sub Command1_Click()

Dim Counter As Integer

Dim Workarea(250) As String

= LBound(Workarea)

= UBound(Workarea)

e = True

'设置进度的值为 Min。

=

'在整个数组中循环。

For Counter = LBound(Workarea) To UBound(Workarea)

'设置数组中每项的初始值。

Workarea(Counter) = "Initial value" & Counter

= Counter

Next Counter

e = False

=

End Sub

Private Sub Form_Load()

= vbAlignBottom

e = False

n = "Initialize array"

End Sub

发行注意 ProgressBar 控件是 ActiveX 控件组的组成,该控件组可以在文件 中找到。要在应用程序中使用 ProgressBar 控件,必须把 文件加到该工程中。在发行应用程序时,应把文件 安装到 Microsoft Windows 的 System 目录或者

System32 目录下。关于如何把一个 ActiveX 控件加到工程中去的详细信息,请参阅《程序员指南》。

RemoteData 控件 通过被绑定的控件提供对存储在远程 ODBC 数据源中数据的存取。RemoteData

控件允许在某一结果集的行与行之间移动,并且允许显示和操作来自于被绑定的控件各行里的数据。

语法

RemoteData

说明

RemoteData 控件在远程数据对象 (RDO)和数据识别的被绑定的控件之间提供了接口。通过 RemoteData 控件,能够:

建立起与基于其本身属性的数据源的连接。

创建 rdoResultset。

把当前行的数据传送给相应被绑定的控件。

允许对当前行指针进行定位。

将对被绑定的控件所做的任何更改反传给数据源。

概述

若是没有 RemoteData 控件,则 Data 控件或其等价物,即窗体上的数据识别(被绑定的)控件就不能自动存取数据。RemoteData 控件和 Data 控件是

DataSource 控件的例子。利用 DataSource 控件在根本不用写任何代码的情况下就能执行大部分远程数据存取操作。被绑定在 DataSource 控件上的数据识别控件,能自动显示来自于当前行某一列或数列的数据,或者在某些情况下,能显示当前行在任一侧时、一组行的某一列或数列的数据。DataSource 控件执行当前行的所有操作。

DataSource 控件:RemoteData

如果发指令要求 RemoteData 控件移动到另一行,则所有被绑定的控件应自动地把所做的任何更改传送给 RemoteData 控件,以便将它们存储到 ODBC 数据源。然后 RemoteData 控件移动到所需要的行,并且把当前行数据回传给显示它的被绑定的控件。

RemoteData 控件能自动处理一些意外事件,包括空结果集,增加新行,编辑和更新现有行,转换和显示复杂数据类型,以及处理某些类型的错误等。然而,在更完善的应用程序中,必须捕获 RemoteData 控件不能处理的错误情况。例如,如果远程服务器在访问数据源时出现错误、权限不够、或者查询不能按照编码执行,等等,都会产生可捕获的错误。如果错误出现在应用程序过程开始之前,或者作为某些内部错误的结果,则将触发 Error 事件。 操作

为了描述数据源,建立连接,并指明要创建的游标类型,应使用 RemoteData 控件属性。一旦创建了结果集合,若是改变这些属性,就要用 Refresh 方法来重建基于新属性设置的基本的 rdoResultset。

很多方面 RemoteData 控件的行为与 Jet 驱动的 Data 控件相似。下面的一些准则表明了在设置 SQL 属性时两者的微略不同。

可以象处理 Data 控件的 RecordSource 属性那样处理 RemoteData

控件的 SQL 属性,只是后者不能自己接受表的名称,除非首先移居到

rdoTables 集合中。一般说来,SQL 属性指定一个 SQL 查询。例如,不是给出准确的“Authors”,而是编制可提供同样功能的代码“SELECT * FROM

AUTHORS”。不过,这种指定一个表的方式并不是好的编程实践,因为它倾向于返回太多的行,并易于耗尽工作站资源或者使数据库中的大量区段锁定。

RemoteData 控件创建的结果集合与 Data 控件创建的 Recordset 在顺序上可能不同。例如,如果 Data 控件的 RecordSource 属性被设置为“Authors”,而 RemoteData 控件的 SQL 属性被设置为“SELECT *

FROM AUTHORS”,则由 Jet 返回给 Data 控件的第一条记录是基于

Authors 表的第一条可用索引。然而,RemoteData 控件返回的是基于数据库中各行物理顺序的、被远程数据库引擎所返回的第一行,而不考虑索引。在某些情况下,上述两种记录的顺序可能相同,但并不总是这样。

这种行为上的差别会影响被绑定的控件—尤其是象 DataGrid 控件那样多行被绑定的控件如何处理结果行。可以用鼠标操纵 RemoteData 控件—在行与行之间移动当前行指针,或者通过单击控件将其移动到 rdoResultset 的开始或结尾。当操作 RemoteData 控件的按钮时,当前行指针在

rdoResultset 被重新定位。不能用鼠标移动到 rdoResultset 的任一端之外。也不能将焦点设置在 RemoteData 控件上。

其它功能

可以利用 RemoteData 控件所创建的对象来创建附加的

rdoConnection,rdoResultset 或者 rdoQuery 对象。

可以把 RemoteData 控件的 Resultset 属性设置为不依赖于该控件而创建的 rdoResultset。若是这样做了的话,该 RemoteData 控件的属性要基于新的 rdoResultset 和 rdoConnection 而重新设置。

可以设置 Options 属性从而允许 rdoResultset (rdAsyncEnable) 的异步创建,或者在无需创建临时存储过程 (rdExecDirect) 而执行查询。

在当前行指针每次重定位之前都将触发 Validate 事件。可以选择接受对被绑定的控件所作的改变或者使用 Validate 事件的

action

参数来取消该操作。 RemoteData 控件也能管理当遇到一个无行的 rdoResultset 时应做些什么。通过改变 EOFAction 属性,可以对 RemoteData 控件编程,以自动进入

AddNew 模式。

注意 如果 Image 控件与在 RemoteData 控件中的一个包含图象的字段绑定,且 RemoteData 控件使用批游标(即,CursorDriver =

rdUseClientBatch),则 Image 控件不能显示图象。

计划性操作

为了用 RemoteData 控件有计划的创建 rdoResultset:

为了描述所要求创建的 rdoResultset 的特征应设置 RemoteData 控件的各种属性。

为了开始自动处理或者创建新的 rdoResultset,应使用 Refresh 方法。应抛弃任何已存在的 rdoResultset。

所有 RemoteData 控件的属性和新的 rdoResultset 对象都可能受到独立的有或者没有被绑定的 RemoteData 控件 的操作处理。每个

rdoConnection 和 rdoResultset 对象都有自己的属性和方法,它们可以与编写过程一起使用。

例如,rdoResultset 对象的 MoveNext 方法可以在 rdoResultset 里从当前行移到下一行。为了使用 RemoteData 控件所创建的 rdoResultset,应调用该方法,可能用到下面的代码:

xt

结果集不能自动更新绑定控件

将一个结果集赋值给 RemoteData 控件 (RDC) 不能更新绑定控件。当将一个控件绑定到 RDC 的结果集时,结果集不能自动显示控件。以下说明此问题:

1. 启动 Visual Basic 并打开一个标准 EXE 工程。

2. 引用 RDC.

3. 将 RDC 放入窗体。

4. 将 TextBox 控件放入窗体。

5. 设置下列 TextBox 属性: DataSource: MSRDC1

DataField: au_lname

6. 将 CommandButton 控件放入窗体并添加以下代码到 Click 事件:

7.

8.

9.

10.

11.

12.

Dim cn As New rdoConnection

t = _

"dsn=pinkpearl;database=rdobugs;uid=rdo;pwd="

ishConnection

Set set = sultset("select * _

from authors]")

13. 运行工程 (F5)。

14. 单击 CommandButton。

注意绑定控件不象您预期的那样填充数据。必须发命令 h 给绑定控件以填充,这样将会使服务器再发送整个结果集。(注意:这在某些情况下会用很长时间)。

要解决该问题,请在设置代码中的结果集之后设置任何绑定控件的数据域。例如,在下列行之后:

Set set = sultset("select * _

from authors]")

应该添加:

eld = "au_lname"

这样将迫使绑定管理器设置并更新绑定,用数据填充绑定控件。

当RDC 使用批游标时,绑定 Image 或 PictureBox 控件不显示图片

在用 Image 或 PictureBox 控件绑定 RDC 中包含图象的字段,同时

RDC 使用批游标 (CursorDriver = rdUseClientBatch)时,注意 Image

或 PictureBox 控件不显示图象。要正确地显示图象,或者将 RDC 的

Options 属性设置为 128 (rdFetchLongColumns),或者使用另一个不同的游标。 不要使用仅向前结果集

当企图将只向前结果集赋值给 RDC 时,会发生“无效对象”错误。以下说明此情况:

1. 启动 Visual Basic。

2. 将 RemoteData 控件放入 Form1。

3. 通过“工程”菜单的“引用”命令添加一个对 RDO 的引用。

4. 将下列代码添加入 Form_Load 事件。

5. Dim x as new rdoConnection

6. Dim y as rdoQuery

7. t = "DSN=Union;UID=rdo;PWD="

8. ishConnection

9. Set y = Query("Query1", "SELECT * FROM _

10. authors")

11. 1

12. ' invalid object error occurs on next line

Set set = eryResults

13. 按下 F5。

该错误发生的原因在于它使用了不能赋值给 RDC 的仅向前结果集。要将一个结果集赋值给 RDC, 它必须是键集或静态的。例如:

Dim x As New rdoConnection

Dim y As rdoQuery

t = "DSN=Union;database=rdobugs;UID=rdo;PWD="

ishConnection

Set y = Query("Query1", "SELECT * FROM _

authors")

Type = rdOpenKeyset

pe = rdConcurRowVer

1

Set set = eryResults

RichTextBox 控件

RichTextBox 控件不仅允许输入和编辑文本,同时还提供了标准 TextBox 控件未具有的、更高级的指定格式的许多功能。 语法

RichTextBox

说明

RichTextBox 提供了一些属性,对于本控件文本的任何部分,用这些属性都可以指定格式。为了改变文本的格式,首先要选定它。只有选定的文本才能赋予字符和段落格式。使用这些属性,可把文本改为粗体或斜体,或改变其颜色,以及创建上标和下标。通过设置左右缩进和悬挂式缩进,可调整段落的格式。

RichTextBox 控件能以 rtf 格式和普通 ASCII 文本格式这两种形式打开和保存文件。可以使用控件的方法(LoadFile 和 SaveFile)直接读写文件,或使用与 Visual Basic 文件输入/输出语句联结的、诸如 SelRTF 和 TextRTF 之类的控件属性打开和保存文件。

通过使用 OLEObjects 集合,RichTextBox 控件支持对象的嵌入。插入到控件中的每个对象,都代表 OLEObject 对象。用这样的控件,就可以创建包含其它文档或对象的文档。例如,可创建这样的文档,它有一个嵌入的 Microsoft

Excel 电子数据表格、或 Microsoft Word 文档、或其它已在系统中注册的

OLE 对象。为了把一个对象插入到 RichTextBox 控件中,只需简单地拖动一个文件(例如 在Windows 95“资源管理器”中的拖动),或拖动的是另一应用程序(如 Microsoft Word)所用文件的一个突出显示的区域,然后将所拖内容直接放入控件。

RichTextBox 控件支持 OLE 对象的剪贴板和 OLE 拖/放操作。从剪贴板中粘贴进一个对象时,它被插在当前插入点处。一个对象被拖放到控件时,插入点将跟踪着鼠标光标的移动,直至鼠标按钮释放时该对象即被插入。这种行为和

Microsoft Word 的一样。

使用 SelPrint 方法,可以打印 RichTextBox 控件的全部或部分文本。

因为 RichTextBox 是一个数据绑定控件,通过 Data 控件可以把它绑定到

Microsoft Access 数据库的 Binary 或 Memo 字段上,也可把它绑定到具有相同容量的其它数据库字段上(例如 SQL 服务器中的 TEXT 数据类型的字段)。

标准 TextBox 控件用到的所有属性、事件和方法,RichTextBox 控件几乎都能支持,例如 MaxLength、 MultiLine、 ScrollBars、 SelLength、

SelStart 和 SelText。对于那些可以使用 TextBox 控件的应用程序,也可以很容易地使用 RichTextBox 控件。而且,RichTextBox 控件并没有和标准 TextBox 控件一样具有 64K 字符容量的限制。

发行注意 为了能在应用程序中使用 RichTextBox 控件,必须把 文件添加到工程中。因此,在应用程序发行时, 文件就应安装在 Microsoft Windows 的 SYSTEM 目录内。有关怎样把自定义控件添加到工程中的详细内容,请参阅《程序员指南》。

SSTab 控件

SSTab 控件提供了一组选项卡,每个选项卡都可作为其它控件的容器。在控件中,同一时刻只有一个选项卡是活动的,这个选项卡向用户显示它本身所包含的控件而隐藏其它选项卡中的控件。

语法

SSTab

说明

SSTab 控件就象笔记本中的分割线或一组文件夹上的标签一样。用 SSTab 控件,可以在应用程序中为某个窗口或对话框的相同区域定义多个页面。用这个控件的属性可以:

决定选项卡的数目。

把选项卡组织到多于一行中。

为每一个选项卡设置文本。

在每个选项卡上显示一幅图形。

决定所用选项卡的样式。

设置每个选项卡的大小。

为了使用这个控件,必须首先决定想怎样组织放置到不同选项卡中的控件。设置

Tabs 和 TabsPerRow 属性来创建选项卡,并把它们组织到各行中。然后在设计时通过单击每个选项卡来选择它。对每个选项卡,在用户选定该选项卡时希望显示控件,所以要将这些控件绘制出来。按照要求,设置 Caption、Picture、TabHeight 和 TabMaxWidth 属性,由此定制选项卡的顶部。

在运行时,用户可按 CTRL+TAB 键或使用每个选项卡的标题中所定义的加速键在选项卡之间移动。

也可用 Style、ShowFocusRect、TabOrientation 和 WordWrap 属性定制整个 SSTab 控件。

发行注意 可在文件 中找到 SSTab 控件。为在应用程序中使用

SSTab 控件,必须将该控件的 .OCX 文件添加到工程中。当发行应用程序时,把合适的 .OCX 文件安装到用户的 Microsoft Windows 的 System 或者 System32 子目录下。关于如何将附加控件添加到工程中去的详细信息,请参阅 Visual Basic《程序员指南》。

StatusBar 控件

StatusBar 控件提供窗体,该窗体通常位于父窗体的底部,通过这一窗体,应用程序能显示各种状态数据。StatusBar 最多能被分成 16 个 Panel 对象,这些对象包含在 Panels 集合中。

语法

StatusBar

说明

StatusBar 控件由 Panel 对象组成,每一个 Panel 对象能包含文本和/或图片。控制个别面板的外观属性包括 Width、Alignment(文本和图片的)和 Bevel。此外,能使用 Style 属性七个值中的一个自动地显示公共数据,诸如日期、时间和键盘状态等。

在设计时,在 StatusBar 控件的属性页的“窗格”选项卡中设置的值能建立面板并定制它们的外观。在运行时,能重新配置 Panel 对象以反映不同的功能,这些功能取决于应用程序的状态。关于 Panel 对象的属性、事件和方法的详细信息,请参阅“Panel 对象和 Panels 集合”的主题。

StatusBar 控件代表性地显示有关在窗体上查看的对象、对象组件的信息或关系到对象操作的上下文的信息。StatusBar 控件与其它控件如 Toolbar 控件一起,提供建立界面的工具,该界面既经济又含有丰富的信息。

发行注意 StatusBar 控件是自定义控件组的一部分,该控件可在

文件中找到。为了在应用程序中使用 StatusBar 控件,必须将

文件添加到工程中。当发布应用程序时,请在用户的 Microsoft

Windows SYSTEM 目录下安装 文件。如何将自定义的控件添加到工程中的详细信息,请参阅《程序员指南》。

Sysinfo 控件

SysInfo 控件用来响应操作系统发送给所有应用程序的系统消息。于是应用程序在必要时就可适应操作系统的变化。

语法 SysInfo

说明

用 SysInfo 控件可监视操作系统信息,还可响应系统事件。该控件的特点如下所列:

与系统变化相关的事件(例如,DisplayChanged、TimeChanged 以及

SettingChanged 事件)。

电源状态事件及属性(例如,PowerSuspend、PowerResume 事件及

ACStatus 和 BatteryStatus 属性)。

Plug 和 Play 事件(例如,DeviceArrival 和 DeviceRemoveComplete 事件)。

操作系统属性(例如,OSVersion 和 WorkAreaHeight 属性)。

TabStrip 控件

TabStrip 控件就象笔记本的书签或者一组文件夹的标签一样。通过使用

TabStrip 控件,可以在应用程序中为某个窗口或者对话框的相同区域定义多个页面。

语法

TabStrip

说明

该控件由 Tabs 集合中的一个或者更多个 Tab 对象组成。在设计时和运行时,都可以通过设置该控件的属性影响 Tab 对象外观。也可以在设计时用 TabStrip 控件的属性页来添加或删除选项卡,要是在运行时用方法来添加或删除 Tab 对象。

Style 属性决定了 TabStrip 控件看起来是象下压按钮还是象笔记本标签 。在设计时将一个 TabStrip 控件放在某个窗体上时,它就有了一个笔记本标签。如果 Style 属性被设置为 tabTabs,那么

TabStrip 控件的内部区域周围将有一个边框。当 Style 属性被设置为

tabButtons 时,控件的内部区域周围不显示边框,不过,那个区域仍然存在。

要设置 TabStrip 控件的整体大小,用其拖动句柄或者设置其 Top、Left、Height 和 Width 属性。运行时根据该控件的整体大小,Visual

Basic 自动决定内部区域的大小和位置并返回 Client-coordinate 属性— ClientLeft、ClientTop、ClientHeight 和 ClientWidth。MultiRow 属性决定了该控件能否具有多于一行的选项卡,TabWidthStyle 属性决定了每一行的外观,还有,如果

TabWidthStyle 属性被设置为 tabFixed,则可以用

TabFixedHeight 和 TabFixedWidth 属性来给 TabStrip 控件中的所有选项卡设置相同的高度和宽度。

 

TabStrip 控件不是容器。要想包含实际页面和它们的对象,必须用

Frame 控件或者其它容器,它们的大小必须与控件中所有 Tab 对象共享的内部区域匹配。如果针对该容器使用了一个控件数组,则可以使特定的 Tab 对象与数组中的每一项相关联,请看下例:

Option Explicit

Private mintCurFrame As Integer' Current Frame visible

Private Sub Tabstrip1_Click()

If = mintCurFrame _

Then Exit Sub ' No need to change frame.

' Otherwise, hide old frame, show new.

Frame1().Visible = True

Frame1(mintCurFrame).Visible = False

' Set mintCurFrame to new value.

mintCurFrame =

End Sub

注意 在容器上将控件分组时,必须使用上述显示/隐藏策略,而不使用

Zorder Method 将框架带到全面来。否则,实现访问键(ALT + 访问键)的控件将一直响应键盘命令,甚至当容器不是最顶端的控件时也如此。还要注意,必须将每个组放在它自己的容器中,以此将 OptionButton

控件的组分离开,否则,窗体上的所有 OptionButtons 将象一大组

OptionButtons。

提示 使用 BorderStyle 属性为 None 的 Frame 控件作为容器来取代 PictureBox 控件。Frame 控件比起 PictureBox 控件来说所花费的开销少。

TabStrip 控件的 Tabs 属性是所有 Tab 对象的集合。每个 Tab 对象都具有与其当前状态和外观相关联的属性。例如,可以使 ImageList

控件与 TabStrip 控件相关联,然后就可以在单个选项卡上使用图象了。也可以使工具提示与每个 Tab 对象相关联。

发行注意 TabStrip 控件是一组自定义控件的一部分,这组自定义控件可以在文件 中找到。为了在应用程序中使用

TabStrip 控件,必须将文件 添加到工程中去。当发布应用程序时,要把文件 安装到用户的

Microsoft Windows SYSTEM 目录下。关于如何在工程中添加自定义控件的详细信息,请参阅《程序员指南》。

Toolbar 控件

Toolbar 控件包含一个 Button 对象集合,该对象被用来创建与应用程序相关联的工具栏。

语法 Toolbar

说明

一般来说,工具栏包含一些按钮,这些按钮与应用程序菜单中各项的按钮对应,工具栏为用户访问应用程序的最常用功能和命令提供了图形接口。

有了 Toolbar 控件,就可以通过将 Button 对象添加到 Buttons 集合中来创建工具栏。每个 Button 对象都可有可选的文本或一幅图象,或者兼而有之,这些都是由相关联的 ImageList 控件提供的。可在一个按钮上用

Image 属性为每个 Button 对象加一幅图象,或用 Caption 属性显示文本,或者二者兼而有之。在设计时可用 Toolbar 控件的属性页将 Button 对象添加到控件中。在运行时可用 Add 和 Remove 方法添加按钮或从

Buttons 集合中删除按钮。

为了给 Toolbar 编程,将代码添加到 ButtonClick 事件中,以便对已选定的按钮作出反应。也可用 Style 属性确定每个 Button 对象的状态和外观。例如,如果已对四个按钮赋以 ButtonGroup 样式,则在任何时候只能按下一个按钮,而且至少总有一个按钮已被按下。

可对 Button 对象赋以 PlaceHolder 样式,然后将控件定位在定位符的上方,从而在工具栏上为其它控件创建空间。例如,在设计时,为将下拉组合框放置在工具栏上,用 PlaceHolder 样式添加一个 Button 对象,并调整其大小使之与 ComboBox 控件一样宽。然后将 ComboBox 控件放置在定位符上。

在运行时双击工具栏后就会调用“自定义工具栏”对话框,有了这个对话框,用户就可隐藏、显示或重新安排工具栏按钮。可用 AllowCustomize 属性来允许或禁用对话框。也可用 Customize 方法调用“自定义工具栏”对话框。如果希望保存或恢复工具栏的状态,或者允许用户这样做,则有两种方法可供使用:SaveToolbar 和 RestoreToolbar 方法。在改动工具栏时产生的

Change 事件一般被用来调用 SaveToolbar 方法。

注意 自定义的对话框也包含帮助按钮。当终端用户单击帮助按钮时,使用

HelpFile 和 HelpContextID 属性来决定显示哪个帮助文件。

通过对每个 Button 对象的 ToolTipText 描述进行编程可进一步增强可用性。为显示工具提示,必须将 ShowTips 属性设置为 True。当用户调用“自定义工具栏”对话框时,单击按钮就会导致在对话框中显示按钮的描述;这种描述可通过设置 Description 属性来编程实现。

发行注意 Toolbar 控件是一组ActiveX 控件的一部分,这组自定义控件可在文件 中找到。为在应用程序中使用 Toolbar 控件,必须将文件 添加到工程中。在发行应用程序时,应将文件

安装到用户的 Microsoft Windows 的SYSTEM 或 System32 ( Windows NT 平台上)的文件夹。关于怎样将一个 ActiveX 控件添加到工程中去的详细信息,请参阅《部件工具指南》中的“加载 ActiveX 控件”。

TreeView 控件

TreeView 控件显示 Node 对象的分层列表,每个 Node 对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。

语法

Treeview

说明

创建了 TreeView 控件之后,可以通过设置属性与调用方法对各 Node 对象进行操作,这些操作包括添加、删除、对齐和其它操作。可以编程展开与折回 Node 对象来显示或隐藏所有子节点。Collapse、Expand 和 NodeClick 三个事件也提供编程功能。

Node 对象使用 Root、Parent、Child、FirstSibling、Next、Previous 和

LastSibling 属性。在代码中可通过检索对 Node 对象的引用,从而在树上定位。也可以使用键盘定位。UP ARROW 键和 DOWN ARROW 键向下循环穿过所有展开的

Node 对象。从左到右、从上到下地选择 Node 对象。若在树的底部,选择便跳回树的顶部,必要时滚动窗口。RIGHT ARROW 键和 LEFT ARROW 键也穿过所有展开的 Node 对象,但是如果选择了未展开的 Node之后再按 RIGHT ARROW 键,该 Node 便展开;第二次按该键,选择将移向下一个 Node。相反,若扩展的 Node

有焦点,这时再按 LEFT ARROW 键,该 Node 便折回。如果按下 ANSI 字符集 中的键,焦点将跳转至以那个字母开头的最近的 Node。后续的按该键的动作将使选择向下循环,穿过以那个字母开头的所有展开节点。

控件的外观有八种可用的替换样式,它们是文本、位图、直线和 +/- 号的组合,Node 对象可以任一种组合出现。

TreeView 控件使用由 ImageList 属性指定的 ImageList 控件,来存储显示于

Node 对象的位图和图标。任何时刻,TreeView 控件只能使用一个 ImageList。这意味着,当 TreeView 控件的 Style 属性被设置成显示图像的样式时,TreeView 控件中每一项的旁边都有一个同样大小的图像。

发行注意 TreeView 控件是 文件中的一组 ActiveX 控件的一部分。为了在应用程序中使用 TreeView 控件,必须将 文件添加到工程中。在发行应用程序时,要在用户的 Microsoft Windows System 或

System32 目录中安装 文件。 UpDown控件

UpDown 控件有一对上下箭头按钮,单击时使诸如滚动位置或者关联的伙伴控件中的值增减。

语法

UpDown

说明

对用户而言,UpDown 控件及其伙伴控件常常象单个控件。伙伴控件可以是通过

BuddyControl 属性与 UpDown 控件相关联的任何控件,通常它显示如

TextBox 控件或 CommandButton 控件的数据。

注意 象内在的标签控件这样,一些辅助的无窗口控件,都不能用作伙伴控件。

通过设置 AutoBuddy 属性,UpDown 控件就自动地将Tab 键次序中前面的控件作为它的伙伴控件。如果Tab 键次序中没有前面的控件,UpDown 控件则将Tab 键次序中的下一个控件作为它的伙伴控件。另一种设置伙伴控件的方法是使用 BuddyControl 属性。在设计时,一旦 AutoBuddy 属性或

BuddyControl 属性被设置,伙伴控件会自动地按其大小和位置与

UpDown 控件配对。UpDown 控件可用 Alignment 属性决定它被放在伙伴控件的右面或左面。

当单击控件上的按钮时,Increment、Min、Max 和 Wrap 属性规定 UpDown

控件的 Value 属性如何改变。例如,如果有一些值是 10 的倍数,且在 20 与

80 之间,可以设置 Increment、Min 和 Max 属性值分别为 10、20 和

80。Wrap 属性允许 Value 属性超过 Max 属性值从 Min 属性值重新开始增加,或相反。

没有伙伴控件的 UpDown 控件起一种简化滚动条的作用。

注意 UpDown 控件应当代替 Visual Basic 4.0 的 Spin Button 控件。

发行注意 UpDown 控件是在 文件中可找到的

ActiveX 控件的一部分。为了在应用程序中使用 UpDown 控件,必须在工程中添加 文件。在发行应用程序时,要将

文件安装在用户的 Microsoft Windows 的 SYSTEM 目录中。关于如何在工程中添加自定义控件的详细信息,请参阅《程序员指南》。 Winsock 控件

Winsock 控件对用户来说是不可见的,它提供了访问 TCP 和 UDP 网络服务的方便途径。Microsoft Access、Visual Basic、Visual C++ 或 Visual FoxPro 的开发人员都可使用它。为编写客户或服务器应用程序,不必了解 TCP 的细节或调用低级的 Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。

TCP 基础

数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。

如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(RemoteHost

属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用 Connect

方法。

如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用

Listen 方法。当客户计算机需要连接时就会发生 ConnectionRequest 事件。为了完成连接,可调用 ConnectionRequest 事件内的 Accept 方法。

建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 SendData

方法。当接收数据时会发生 DataArrival 事件。调用 DataArrival 事件内的

GetData 方法就可获取数据。

UDP 基础

用户数据文报协议 (UDP) 是一个无连接协议。跟 TCP 的操作不同,计算机并不建立连接。另外 UDP 应用程序可以是客户机,也可以是服务器。

为了传输数据,首先要设置客户计算机的 LocalPort 属性。然后,服务器计算机只需将 RemoteHost 设置为客户计算机的 Internet 地址,并将

RemotePort 属性设置为跟客户计算机的 LocalPort 属性相同的端口,并调用 SendData 方法来着手发送信息。于是,客户计算机使用 DataArrival

事件内的 GetData 方法来获取已发送的信息。