简介:

TabControl 包含选项卡页,这些选项卡页由通过 TabPages 属性添加的 TabPage 对象表示。 此集合中的选项卡页的顺序反映了选项卡在控件中出现的顺序。

用户可以通过单击控件中的某一选项卡来更改当前的 TabPage。 您也可以通过使用下面的 TabControl 属性之一,以编程的方式更改当前的 TabPage:SelectedIndex,SelectedTab。

TabControl 中的选项卡是 TabControl 的一部分,但不是各个 TabPage 控件的一部分。 TabPage 类的成员(例如 ForeColor 属性)只影响选项卡页的矩形工作区,而不影响选项卡。 此外, TabPage 的 Hide 方法不会隐藏选项卡。 若要隐藏选项卡,必须从 TabControl. TabPages 集合中移除 TabPage 控件。

在 .NET Framework 2.0 中,选项卡可看作选项卡页的一部分,用来确定 TabPage 的 Enter 和 Leave 事件何时发生。 在早期的 .NET Framework 版本中,当焦点进入或离开选项卡时, TabPage 的 Enter 和 Leave 事件不会发生,而只是当焦点进入或离开选项卡页的工作区矩形区域时才发生这两个事件。

除非 TabControl. TabPages 集合中至少有一个 TabPage,否则不会引发 TabControl 类的下列事件: Control. Click、 Control. DoubleClick、 Control. MouseDown、 Control. MouseUp、 Control. MouseHover、 Control. MouseEnter、 Control. MouseLeave 和 Control. MouseMove。如果集合中至少有一个 TabPage,并且用户与选项卡控件标头(显示 TabPage 名称的地方)交互,则 TabControl 将引发相应的事件。 但是,如果用户交互作用发生在选项卡页的 ClientRectangle 内,则 TabPage 将引发相应的事件。

在选项卡页显示之前,将不会创建 TabPage 中包含的控件,并且不会激活这些控件中的任何数据绑定。

启用视觉样式并将 Alignment 属性设置为 Top 以外的值时,选项卡中的内容可能无法正确呈现。 为了解决此问题,可以使用所有者绘制来亲自绘制选项卡内容。 有关更多信息,请参见 如何:使用 TabControl 显示边对齐的选项卡。

当 Alignment 属性设置为 Top 以外的值, Appearance 属性设置为 Normal 以外的值时,选项卡页中的内容可能无法正确呈现。

 

介绍:

1.属性

常用属性
Name获取或设置控件的名称。
TabIndex

获取或设置在控件的容器的控件的 Tab 键顺序。

TabPages

 

获取该选项卡控件中选项卡页的集合
Name获取或设置控件的名称。
Text获取或设置要在选项卡上显示的文本。
AutoScroll

获取或设置一个值,该值指示容器是否允许用户滚动到任何放置在其可见边界之外的控件。

ImageIndex获取或设置在该选项卡上显示的图像的索引。

 

ImageList

获取或设置在控件的选项卡上显示的图像。

ImageIndex

获取或设置在该选项卡上显示的图像的索引。

Multiline

获取或设置一个值,该值指示是否可以显示一行以上的选项卡。

SizeMode
获取或设置调整控件的选项卡大小的方式
Normal调整每个选项卡的宽度以适应在选项卡上显示的内容,并且不调整一行中的选项卡大小以填充容器控件的整个宽度。
FillToRight每个选项卡的宽度都要调整,以便选项卡的每行填充容器控件的整个宽度。 这仅适用于具有一行以上的选项卡控件。
Fixed控件中的所有选项卡具有相同的宽度。

 

SelectedIndex

获取或设置当前选定的选项卡页的索引。

 

2.事件

常用事件
SelectedIndexChanged

在 SelectedIndex 属性更改后发生。

 

3.使用

  1. 可以简单的理解为,可以换页显示。每页叠加着,像看书一样。
  2. 通过空间右上角的平放三角形符号添加或移除选项卡。
TabControl控件

 

4.演示

        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (tabControl1.SelectedIndex == 0)
            {
                label1.Text = "第一页";
            }
            else if (tabControl1.SelectedIndex == 1)
            {
                label2.Text = "第二页";
            }
        }
效果
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐