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 属性被设置为显示 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 属性决定的。例如:
图 2.34 选项卡位于左边
如果将选项卡的位置设置为上、下以外的值时,就必须改变选项卡的字形。将选项卡放在左边或右边,都需要将文本旋转为竖直方向,在 Tabbed Dialog 控件中,只有 TrueType(R) 字体才能够竖直显示。可以用 Font 属性或控件“属性页”中的“字体”选项卡改变字形。通常用 Arial 字体来替代 Windows 的缺省字体 sans serif。
在运行时,可以用如下 Visual Basic 常数设置这些属性:ssTabOrientationTop、ssTabOrientationBottom、ssTabOrientationLeft 和 ssTabOrientationRight。
可以在 Tabbed Dialog 控件的任何一个选项卡上添加图片(位图、图标或元文件)。例如:
图 2.35 为选项卡添加图片
在设计时,要为选项卡设置 Picture 属性,可以单击选项卡,然后在“属性”中设置属性。在运行时,可以用其它控件或者 Form 对象中的 LoadPicture 函数或 Picture 属性来设置 Picture 属性。
注意 如果要在设计时设置 Picture 属性,则图象与包含该 Tabbed Dialog 控件的 Form 对象保存在一起,并且一起被加载。如果创建一个可执行文件,则该文件将包含该图象。如果在运行时装载图象,则该图象不保存在应用程序中。
设置 Picture 属性会影响到当前选项卡的 TabPicture 属性,并在活动选项卡上显示图片。
可能需要根据图象的大小调整选项卡的高度。用 TabMaxHeight 属性可以调整选项卡的高度。TabMaxHeight 属性设置了控件中所有选项卡的高度,单独的选项卡不能调整高度。
如果使用 Microsoft Office 样式的选项卡式对话框,还需要设置 TabMaxWidth 属性,使图片和文本与选项卡相适合。如果使用 Windows 95 样式的选项卡式对话框,TabMaxWidth 属性是被忽略的,选项卡的宽度被自动调整为图象和标题中文本的组合宽度。
在使用 Microsoft Office 样式的选项卡式对话框时,可以用 TabMaxWidth 属性设置选项卡的准确宽度。在设置宽度后,如果将 WordWrap 设置为 True,较长的选项卡标题就能够自动折到下一行。虽然标题文本会自动折行,仍然要受到选项卡的高度和宽度的限制。也就是说,如果高度和宽度不够,标题文本还是会被剪裁掉或隐藏。
Windows 95 样式的选项卡式对话框以标题文本的长度为基准设置选项卡的宽度;TabMaxWidth 和 WordWrap 属性设置将不起作用。
为每个选项卡添加了控件之后,就可以完成定制选项卡式对话框的设计工作,该对话框类似于标准的选项卡式对话框。例如,如果希望显示的对话框类似于标准的 Windows 95“属性页”对话框,需要如下步骤: