hq trivia:使用 TabStrip控件,Visual Basic

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 18:57:38

使用 TabStrip控件

TabStrip控件的功能与笔记本的分页签或文件夹上的标签差不多。使用TabStrip控件,就能够将应用程序中的窗口或对话框的同一区域定义为多页。

可能的用途

  • 创建选项卡式对话框,用来为 RichTextBox控件设置各种文本属性。

  • 创建选项卡式对话框,用来设置应用程序的首选项。

Tabs集合

控件由 Tabs集合中的一个或多个 Tab对象构成。无论在设计时还是运行时,都能够通过设置属性来影响Tab对象的外观;在运行时,还能够通过调用一些方法来添加和删除 Tab对象。

将 ImageList控件与 TabStrip控件相关联

为标识选项卡的功能,可以将 ImageList控件中的图象与 Tab对象联系起来。首先,必须将 ImageList控件与TabStrip控件相关联,这既可以在设计时完成,也可以在运行时完成。

在设计时将 ImageList控件与 TabStrip控件相关联:

  1. 在 ImageList控件中包含所需的图象。

  2. 用鼠标右键单击 TabStrip控件,并单击“属性”,打开“TabStrip属性页”对话框。

  3. 在“通用”选项卡上,单击“图象列表”框,并选中所需的ImageList控件。

  4. 要在运行时将 ImageList控件与 TabStrip控件相关联,只需将 ImageList属性设置为 ImageList控件的名称即可,如下所示:
Private Sub Form_Load()'TabStrip控件名为“tabRTF”,'ImageList控件名为“imlRTF”。tabRTF.ImageList = imlRTFEnd Sub

在设计时或运行时创建 Tab

在设计时和运行时均可创建 Tab对象。在设计时创建 Tab对象,需要使用“属性页”对话框。

在设计时创建 Tab对象

  1. 用鼠标右键单击 TabStrip控件,并单击“属性”以显示“属性页”对话框。

  2. 单击“选项卡”以显示“选项卡”页,如下图 2.36 所示:

图 2.36 “TabStrip属性页”

在运行时用 Add方法创建 Tab对象

要在运行时创建 Tab对象,需要对 Tab对象使用 Add方法。

注意 在缺省情况下,预先已经创建了一个 Tab对象。

在运行时创建 Tab对象的集合

  1. 声明一个 Tab 类型的变量,在添加每个 Tab对象之后,该变量能够包含对新创建对象的引用。可以使用该引用为新创建的Tab对象设置各种属性。

  2. 使用带 Add方法的Set 语句,将对象变量设置为新的Tab对象。

  3. 使用对象变量,设置新的Tab对象的属性。

下面的代码用 Form对象的Load事件创建了两个 Tab对象,然后设置了新 Tab对象的Caption、Image和Key属性。

Private Sub Form_Load()'TabStrip控件被命名为“tabData”。'声明变量,然后用带 Add方法的 Set   '语句创建新的 Tab对象,'然后将对象变量设置为新的 Tab'并用它设置属性。Dim tabX As Tab   'Tab 1: Find文本。Set tabX = tabData.Tabs.Add()   tabX.Key = "find"   tabX.Caption = "Find"   tabX.Image = "Find" '假定存在该图象。'Tab 2:绘画对象。Set tabX= tabData.Panels.Add()   tabX.Key = "draw"   tabX.Caption = "Draw"   tabX.Image = "draw" '假定存在该图象End Sub

提示 如果直接用 Add方法,而不用对象变量来设置属性,效率会更高。在这种情况下,上述代码可以改写为:

tabData.Tabs.Add , "find", "Find", "find"
tabData.Tabs.Add , "draw", "Draw", "draw"

在客户区中放置容器控件

TabStrip控件通常用来创建选项卡式对话框。该对话框每页由选项卡和客户区构成,如下图所示:

在运行时,如果用户单击选项卡,则必须对客户区进行编程,用一组不同的容器控件重新配置客户区(在下面的“管理 Tabs和容器控件”中讨论)。

在设计时,可以在窗体中绘制容器控件,例如 PictureBox 或 Frame控件。如果使用 Frame控件,则可以在运行时将其BorderStyle属性设为不可见的。通过复制并粘贴同一个控件,来创建一组控件;需要为每个 Tab对象创建一个控件。

在每个容器控件上,绘制应出现在选项卡中的控件。窗体看起来可能类似于下面的图 2.37:

图 2.37 在设计时具有两个 PictureBox控件的TabStrip

在创建了容器控件之后,需要用另外一种技术将它们放置在 TabStrip控件的客户区:使用 Move方法,并带上 Tabstrip的ClientLeft、ClientTop、ClientWidth和ClientHeight属性,如下所示:

Private Sub Form_Load()'TabStrip控件名为“tabRTF”。'Frame控件名为“fraTab”。For i = 0 To fraTab.Count - 1   With fraTab(i)      .Move tabRTF.ClientLeft, _      tabRTF.ClientTop, _      tabRTF.ClientWidth, _      tabRTF.ClientHeight   End With   Next iEnd Sub

管理 Tabs和容器控件

选项卡式对话框中可以包含多个 Tab对象。正如上面看到的,Frame控件(或其它容器控件)应与每个Tab对象相关联。为了高效地管理众多的Tab对象和容器控件,可使用如下策略:

  1. 在设计时,创建所需要的全部 Tab对象。

  2. 创建容器控件的控件数组,一个数组成员对应于一个 Tab对象。

  3. 在每个容器控件中,绘制在选项卡页上的控件。

  4. 在运行时,使用控件的SelectedItem属性确定被单击的Tab对象的索引。

  5. 用 ZOrder方法将适当的容器控件显示在最前面。

用来将合适的容器显示在最前面的代码可能类似于下面的代码:

Private Sub tabRTF_Click()picRTF(tabRTF.SelectedItem.Index - 1).ZOrder 0End Sub

提示 在设计时,可将控件数组的Index属性设置为基于 1 的数组。因为 Tabs集合也是基于 1 的集合,所以上述代码可以改写如下:

picRTF(TabRTF.SelectedItem.Index).ZOrder 0

详细信息 上述策略的示例代码,请参阅“TabStrip 应用实例:创建选项卡式对话框”。

选项卡的Style属性:Buttons 或 Tabs

Style属性决定 TabStrip控件的外观象

笔记本的标签,

还是下压式按钮。

下表列出了它们各自的优点:

样式 用途 Tabs 用 Tabs 样式可以创建选项卡式对话框。如果使用该样式,将绘制出整个的选项卡式对话框,包括客户区。必须用代码确定在客户区中显示什么 Buttons 用 Buttons 样式可以创建工具栏或任务条,也就是说,不需要客户区,希望将按钮作为界面元素。或者,有时候不需要事先绘制的客户区,则可设置为 Buttons 样式。

多行选项卡

TabStrip控件的另一特性是 MultiRow属性。如果将该属性设置为 True,那么大量的Tab对象就能够分多行显示,如下所示:

如果 MultiRow属性被设置为 False,一组选项卡只能出现在同一行中,这时在最右端会出现一对滚动按钮:

TabWidthStyle属性决定每行的外观。并且,如果 TabWidthStyle 设置为 Fixed,则还可以用TabFixedHeight和TabFixedWidth属性为 TabStrip控件中的所有选项卡设置相同的高度和宽度。