使用 Tabbed Dialog 控件

Microsoft Tabbed Dialog 控件提供了在一个窗体中显示多个对话框或屏幕的简单方法。在很多商业化的 Microsoft Windows 应用程序都可以看到这种情况。

Tabbed Dialog 控件提供了一组选项卡,它们都担当了其它控件的容器。在该控件中一次只有一个选项卡被激活,该选项卡中的控件被显示出来,而其它选项卡的控件被隐藏起来。

图 2.30 Tabbed Dialog 控件

可能的用途

设置选项卡和选项卡行

在设置要加入到 Tabbed Dialog 控件中的选项卡数目之前,需要确定在对话框中要包含什么以及如何组织它们。

虽然在设计时和运行时均可设置选项卡的数目,但在设计时创建选项卡式对话框更加快捷简便。在设计时可以使用“Tabbed Dialog 属性页”对话框来设置属性,用鼠标右键单击控件,并选中“属性”,即可显示出该对话框。

图 2.31 在设计时设置属性

通过设置 Tab 和 TabsPerRow 属性,可以定义对话框中的选项卡数和行数。例如,如果希望创建包含 12 个选项卡的选项卡式对话框,那么可以将“选项卡数”选项设置为‘12’,将“每行选项卡数”选项设置为‘4’,这样就创建了包含三行选项卡的选项卡式对话框,每行四个,共有 12 个选项卡。缺省的选项卡数目为 3。

在设置了选项卡的数目和行数后,每个选项卡就得到一个编号,并可以被单独选定。例如,可以在“当前选项卡”选项中选定某个选项卡,以改变其 TabCaption 属性。选项卡编号从零(0)开始。

在运行时,用户可以通过单击选项卡、按 CTRL+TAB 键或每个选项卡的标题中定义的热键在选项卡页之间切换。例如,如果希望创建名为“打印”的选项卡,并希望通过键组合 ALT+P 键访问该选项卡,则可以将其 TabCaption 属性设置为‘&Print’。

在选项卡中添加控件

Tabbed Dialog 控件中的每个选项卡本质上都是其它控件的容器。创建 Tabbed Dialog 时,请将完成相近功能的控件组合在一起,例如应用程序中用于打印文档或设置显示的选项功能等。一旦确定了在选项卡式对话框中需要多少个选项卡,就可以添加完成这些功能所需的控件了。

在设计时,要在某一选项卡页中添加控件,首先要单击该选项卡选中它,然后在该选项卡页中绘制所需控件。

注意 不能用双击的方法在选项卡页中添加控件。在工具栏中双击某个控件,该控件将被放到 Tabbed Dialog 对话框控件的每一页中。

详细信息 请参阅《程序员指南》中的“使用 Visual Basic 的标准控件”中的“控件的容器”。

在运行时启用和停用选项卡

根据应用程序的功能,以及创建的选项卡式对话框的特殊情况,可能需要在某些情况下停用某些选项卡。可以用 TabEnabled 属性启用或者停用某个选项卡。当选项卡被停用时,选项卡上的文本变灰,它成为不可使用的。例如:

SSTab1.TabEnabled(2) = False

TabEnabled 属性指定了选项卡号,然后将其值设置为 False 以停用它。

注意 用 Enabled 属性启用和停用整个选项卡式对话框控件。

选项卡的定制属性

利用 Tabbed Dialog 控件的属性,能够定制选项卡式对话框的外观和功能。 可以在设计时用该控件的“属性页”设置这些属性,也可以在运行时用代码设置。

Style 属性

用 Style 属性能够设置两种不同样式的选项卡式对话框。在缺省情况下,Style 属性被设置为显示 Microsoft Office 样式的选项卡式对话框。在选择这种选项卡样式的时候,选项卡的样子类似于 Microsoft Office for Microsoft Windows 3.1 应用程序中的选项卡。在缺省情况下,被选中的选项卡的标题文本用粗体字显示。

图 2.32 Microsoft Office 样式的选项卡式对话框

另一种可用的样式是“Windows 95 属性页”样式的选项卡式对话框。该样式提供了 Windows 95 的标准用户界面。与 Microsoft Office 样式不同,被选中的选项卡的标题不显示为粗体。

图 2.33 “Windows 95 属性页”样式的选项卡式对话框

要在运行时设置显示样式时,可分别用 Visual Basic 的常数 ssStyleTabbedDialog 或 ssStylePropertyPage 来指定。

TabOrientation 属性

选项卡式对话框的选项卡可以放在它的任何一边(上、下、左、右),这是由 TabOrientation 属性决定的。例如:

图 2.34 选项卡位于左边

如果将选项卡的位置设置为上、下以外的值时,就必须改变选项卡的字形。将选项卡放在左边或右边,都需要将文本旋转为竖直方向,在 Tabbed Dialog 控件中,只有 TrueType(R) 字体才能够竖直显示。可以用 Font 属性或控件“属性页”中的“字体”选项卡改变字形。通常用 Arial 字体来替代 Windows 的缺省字体 sans serif。

在运行时,可以用如下 Visual Basic 常数设置这些属性:ssTabOrientationTop、ssTabOrientationBottom、ssTabOrientationLeft 和 ssTabOrientationRight。

Picture 属性

可以在 Tabbed Dialog 控件的任何一个选项卡上添加图片(位图、图标或元文件)。例如:

图 2.35 为选项卡添加图片

在设计时,要为选项卡设置 Picture 属性,可以单击选项卡,然后在“属性”中设置属性。在运行时,可以用其它控件或者 Form 对象中的 LoadPicture 函数或 Picture 属性来设置 Picture 属性。

注意 如果要在设计时设置 Picture 属性,则图象与包含该 Tabbed Dialog 控件的 Form 对象保存在一起,并且一起被加载。如果创建一个可执行文件,则该文件将包含该图象。如果在运行时装载图象,则该图象不保存在应用程序中。

设置 Picture 属性会影响到当前选项卡的 TabPicture 属性,并在活动选项卡上显示图片。

调整选项卡的高度和宽度

可能需要根据图象的大小调整选项卡的高度。用 TabMaxHeight 属性可以调整选项卡的高度。TabMaxHeight 属性设置了控件中所有选项卡的高度,单独的选项卡不能调整高度。

如果使用 Microsoft Office 样式的选项卡式对话框,还需要设置 TabMaxWidth 属性,使图片和文本与选项卡相适合。如果使用 Windows 95 样式的选项卡式对话框,TabMaxWidth 属性是被忽略的,选项卡的宽度被自动调整为图象和标题中文本的组合宽度。

设置 WordWrap 属性

在使用 Microsoft Office 样式的选项卡式对话框时,可以用 TabMaxWidth 属性设置选项卡的准确宽度。在设置宽度后,如果将 WordWrap 设置为 True,较长的选项卡标题就能够自动折到下一行。虽然标题文本会自动折行,仍然要受到选项卡的高度和宽度的限制。也就是说,如果高度和宽度不够,标题文本还是会被剪裁掉或隐藏。

Windows 95 样式的选项卡式对话框以标题文本的长度为基准设置选项卡的宽度;TabMaxWidth 和 WordWrap 属性设置将不起作用。

完成定制的选项卡式对话框

为每个选项卡添加了控件之后,就可以完成定制选项卡式对话框的设计工作,该对话框类似于标准的选项卡式对话框。例如,如果希望显示的对话框类似于标准的 Windows 95“属性页”对话框,需要如下步骤: