public ref class TabControl : System::Windows::Forms::Control
public class TabControl : System.Windows.Forms.Control
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
public class TabControl : System.Windows.Forms.Control
type TabControl = class
    inherit Control
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TabControl = class
    inherit Control
Public Class TabControl
Inherits Control
Object
TabControl

下面的代码示例使用Visual Studio Windows 窗体设计器创建包含三个 TabControl 选项卡页的页。 每个选项卡页都包含多个控件。

public ref class Form1: public System::Windows::Forms::Form private: // Required designer variable. System::ComponentModel::Container^ components; // Declare variables. System::Windows::Forms::RadioButton^ tab3RadioButton2; System::Windows::Forms::RadioButton^ tab3RadioButton1; System::Windows::Forms::CheckBox^ tab2CheckBox3; System::Windows::Forms::CheckBox^ tab2CheckBox2; System::Windows::Forms::CheckBox^ tab2CheckBox1; System::Windows::Forms::Label ^ tab1Label1; System::Windows::Forms::Button^ tab1Button1; System::Windows::Forms::TabPage^ tabPage3; System::Windows::Forms::TabPage^ tabPage2; System::Windows::Forms::TabPage^ tabPage1; System::Windows::Forms::TabControl^ tabControl1; public: Form1() // This call is required for Windows Form Designer support. InitializeComponent(); private: // This method is required for Designer support. void InitializeComponent() this->components = gcnew System::ComponentModel::Container; this->tabPage1 = gcnew System::Windows::Forms::TabPage; this->tab2CheckBox3 = gcnew System::Windows::Forms::CheckBox; this->tab3RadioButton2 = gcnew System::Windows::Forms::RadioButton; this->tabControl1 = gcnew System::Windows::Forms::TabControl; this->tab2CheckBox2 = gcnew System::Windows::Forms::CheckBox; this->tab2CheckBox1 = gcnew System::Windows::Forms::CheckBox; this->tab3RadioButton1 = gcnew System::Windows::Forms::RadioButton; this->tab1Label1 = gcnew System::Windows::Forms::Label; this->tabPage3 = gcnew System::Windows::Forms::TabPage; this->tabPage2 = gcnew System::Windows::Forms::TabPage; this->tab1Button1 = gcnew System::Windows::Forms::Button; tabPage1->Text = "tabPage1"; tabPage1->Size = System::Drawing::Size( 256, 214 ); tabPage1->TabIndex = 0; tab2CheckBox3->Location = System::Drawing::Point( 32, 136 ); tab2CheckBox3->Text = "checkBox3"; tab2CheckBox3->Size = System::Drawing::Size( 176, 32 ); tab2CheckBox3->TabIndex = 2; tab2CheckBox3->Visible = true; tab3RadioButton2->Location = System::Drawing::Point( 40, 72 ); tab3RadioButton2->Text = "radioButton2"; tab3RadioButton2->Size = System::Drawing::Size( 152, 24 ); tab3RadioButton2->TabIndex = 1; tab3RadioButton2->Visible = true; tabControl1->Location = System::Drawing::Point( 16, 16 ); tabControl1->Size = System::Drawing::Size( 264, 240 ); tabControl1->SelectedIndex = 0; tabControl1->TabIndex = 0; tab2CheckBox2->Location = System::Drawing::Point( 32, 80 ); tab2CheckBox2->Text = "checkBox2"; tab2CheckBox2->Size = System::Drawing::Size( 176, 32 ); tab2CheckBox2->TabIndex = 1; tab2CheckBox2->Visible = true; tab2CheckBox1->Location = System::Drawing::Point( 32, 24 ); tab2CheckBox1->Text = "checkBox1"; tab2CheckBox1->Size = System::Drawing::Size( 176, 32 ); tab2CheckBox1->TabIndex = 0; tab3RadioButton1->Location = System::Drawing::Point( 40, 32 ); tab3RadioButton1->Text = "radioButton1"; tab3RadioButton1->Size = System::Drawing::Size( 152, 24 ); tab3RadioButton1->TabIndex = 0; tab1Label1->Location = System::Drawing::Point( 16, 24 ); tab1Label1->Text = "label1"; tab1Label1->Size = System::Drawing::Size( 224, 96 ); tab1Label1->TabIndex = 1; tabPage3->Text = "tabPage3"; tabPage3->Size = System::Drawing::Size( 256, 214 ); tabPage3->TabIndex = 2; tabPage2->Text = "tabPage2"; tabPage2->Size = System::Drawing::Size( 256, 214 ); tabPage2->TabIndex = 1; tab1Button1->Location = System::Drawing::Point( 88, 144 ); tab1Button1->Size = System::Drawing::Size( 80, 40 ); tab1Button1->TabIndex = 0; tab1Button1->Text = "button1"; tab1Button1->Click += gcnew System::EventHandler( this, &Form1::tab1Button1_Click ); this->Text = "Form1"; // Adds controls to the second tab page. tabPage2->Controls->Add( this->tab2CheckBox3 ); tabPage2->Controls->Add( this->tab2CheckBox2 ); tabPage2->Controls->Add( this->tab2CheckBox1 ); // Adds controls to the third tab page. tabPage3->Controls->Add( this->tab3RadioButton2 ); tabPage3->Controls->Add( this->tab3RadioButton1 ); // Adds controls to the first tab page. tabPage1->Controls->Add( this->tab1Label1 ); tabPage1->Controls->Add( this->tab1Button1 ); // Adds the TabControl to the form. this->Controls->Add( this->tabControl1 ); // Adds the tab pages to the TabControl. tabControl1->Controls->Add( this->tabPage1 ); tabControl1->Controls->Add( this->tabPage2 ); tabControl1->Controls->Add( this->tabPage3 ); void tab1Button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) // Inserts the code that should run when the button is clicked. int main() Application::Run( gcnew Form1 ); public class Form1 : System.Windows.Forms.Form // Required designer variable. private System.ComponentModel.Container components; // Declare variables. private System.Windows.Forms.RadioButton tab3RadioButton2; private System.Windows.Forms.RadioButton tab3RadioButton1; private System.Windows.Forms.CheckBox tab2CheckBox3; private System.Windows.Forms.CheckBox tab2CheckBox2; private System.Windows.Forms.CheckBox tab2CheckBox1; private System.Windows.Forms.Label tab1Label1; private System.Windows.Forms.Button tab1Button1; private System.Windows.Forms.TabPage tabPage3; private System.Windows.Forms.TabPage tabPage2; private System.Windows.Forms.TabPage tabPage1; private System.Windows.Forms.TabControl tabControl1; public Form1() // This call is required for Windows Form Designer support. InitializeComponent(); // This method is required for Designer support. private void InitializeComponent() this.components = new System.ComponentModel.Container(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.tab2CheckBox3 = new System.Windows.Forms.CheckBox(); this.tab3RadioButton2 = new System.Windows.Forms.RadioButton(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tab2CheckBox2 = new System.Windows.Forms.CheckBox(); this.tab2CheckBox1 = new System.Windows.Forms.CheckBox(); this.tab3RadioButton1 = new System.Windows.Forms.RadioButton(); this.tab1Label1 = new System.Windows.Forms.Label(); this.tabPage3 = new System.Windows.Forms.TabPage(); this.tabPage2 = new System.Windows.Forms.TabPage(); this.tab1Button1 = new System.Windows.Forms.Button(); tabPage1.Text = "tabPage1"; tabPage1.Size = new System.Drawing.Size(256, 214); tabPage1.TabIndex = 0; tab2CheckBox3.Location = new System.Drawing.Point(32, 136); tab2CheckBox3.Text = "checkBox3"; tab2CheckBox3.Size = new System.Drawing.Size(176, 32); tab2CheckBox3.TabIndex = 2; tab2CheckBox3.Visible = true; tab3RadioButton2.Location = new System.Drawing.Point(40, 72); tab3RadioButton2.Text = "radioButton2"; tab3RadioButton2.Size = new System.Drawing.Size(152, 24); tab3RadioButton2.TabIndex = 1; tab3RadioButton2.Visible = true; tabControl1.Location = new System.Drawing.Point(16, 16); tabControl1.Size = new System.Drawing.Size(264, 240); tabControl1.SelectedIndex = 0; tabControl1.TabIndex = 0; tab2CheckBox2.Location = new System.Drawing.Point(32, 80); tab2CheckBox2.Text = "checkBox2"; tab2CheckBox2.Size = new System.Drawing.Size(176, 32); tab2CheckBox2.TabIndex = 1; tab2CheckBox2.Visible = true; tab2CheckBox1.Location = new System.Drawing.Point(32, 24); tab2CheckBox1.Text = "checkBox1"; tab2CheckBox1.Size = new System.Drawing.Size(176, 32); tab2CheckBox1.TabIndex = 0; tab3RadioButton1.Location = new System.Drawing.Point(40, 32); tab3RadioButton1.Text = "radioButton1"; tab3RadioButton1.Size = new System.Drawing.Size(152, 24); tab3RadioButton1.TabIndex = 0; tab1Label1.Location = new System.Drawing.Point(16, 24); tab1Label1.Text = "label1"; tab1Label1.Size = new System.Drawing.Size(224, 96); tab1Label1.TabIndex = 1; tabPage3.Text = "tabPage3"; tabPage3.Size = new System.Drawing.Size(256, 214); tabPage3.TabIndex = 2; tabPage2.Text = "tabPage2"; tabPage2.Size = new System.Drawing.Size(256, 214); tabPage2.TabIndex = 1; tab1Button1.Location = new System.Drawing.Point(88, 144); tab1Button1.Size = new System.Drawing.Size(80, 40); tab1Button1.TabIndex = 0; tab1Button1.Text = "button1"; tab1Button1.Click += new System.EventHandler(this.tab1Button1_Click); this.Text = "Form1"; // Adds controls to the second tab page. tabPage2.Controls.Add(this.tab2CheckBox3); tabPage2.Controls.Add(this.tab2CheckBox2); tabPage2.Controls.Add(this.tab2CheckBox1); // Adds controls to the third tab page. tabPage3.Controls.Add(this.tab3RadioButton2); tabPage3.Controls.Add(this.tab3RadioButton1); // Adds controls to the first tab page. tabPage1.Controls.Add(this.tab1Label1); tabPage1.Controls.Add(this.tab1Button1); // Adds the TabControl to the form. this.Controls.Add(this.tabControl1); // Adds the tab pages to the TabControl. tabControl1.Controls.Add(this.tabPage1); tabControl1.Controls.Add(this.tabPage2); tabControl1.Controls.Add(this.tabPage3); private void tab1Button1_Click (object sender, System.EventArgs e) // Inserts the code that should run when the button is clicked. public static void Main(string[] args) Application.Run(new Form1()); Public Class Form1 Inherits System.Windows.Forms.Form ' Required designer variable. Private components As System.ComponentModel.Container ' Declares variables. Private tab3RadioButton2 As System.Windows.Forms.RadioButton Private tab3RadioButton1 As System.Windows.Forms.RadioButton Private tab2CheckBox3 As System.Windows.Forms.CheckBox Private tab2CheckBox2 As System.Windows.Forms.CheckBox Private tab2CheckBox1 As System.Windows.Forms.CheckBox Private tab1Label1 As System.Windows.Forms.Label Private WithEvents tab1Button1 As System.Windows.Forms.Button Private tabPage3 As System.Windows.Forms.TabPage Private tabPage2 As System.Windows.Forms.TabPage Private tabPage1 As System.Windows.Forms.TabPage Private tabControl1 As System.Windows.Forms.TabControl Public Sub New() ' This call is required for Windows Form Designer support. InitializeComponent() End Sub ' This method is required for Designer support. Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.tabPage1 = New System.Windows.Forms.TabPage() Me.tab2CheckBox3 = New System.Windows.Forms.CheckBox() Me.tab3RadioButton2 = New System.Windows.Forms.RadioButton() Me.tabControl1 = New System.Windows.Forms.TabControl() Me.tab2CheckBox2 = New System.Windows.Forms.CheckBox() Me.tab2CheckBox1 = New System.Windows.Forms.CheckBox() Me.tab3RadioButton1 = New System.Windows.Forms.RadioButton() Me.tab1Label1 = New System.Windows.Forms.Label() Me.tabPage3 = New System.Windows.Forms.TabPage() Me.tabPage2 = New System.Windows.Forms.TabPage() Me.tab1Button1 = New System.Windows.Forms.Button() tabPage1.Text = "tabPage1" tabPage1.Size = New System.Drawing.Size(256, 214) tabPage1.TabIndex = 0 tab2CheckBox3.Location = New System.Drawing.Point(32, 136) tab2CheckBox3.Text = "checkBox3" tab2CheckBox3.Size = New System.Drawing.Size(176, 32) tab2CheckBox3.TabIndex = 2 tab2CheckBox3.Visible = True tab3RadioButton2.Location = New System.Drawing.Point(40, 72) tab3RadioButton2.Text = "radioButton2" tab3RadioButton2.Size = New System.Drawing.Size(152, 24) tab3RadioButton2.TabIndex = 1 tab3RadioButton2.Visible = True tabControl1.Location = New System.Drawing.Point(16, 16) tabControl1.Size = New System.Drawing.Size(264, 240) tabControl1.SelectedIndex = 0 tabControl1.TabIndex = 0 tab2CheckBox2.Location = New System.Drawing.Point(32, 80) tab2CheckBox2.Text = "checkBox2" tab2CheckBox2.Size = New System.Drawing.Size(176, 32) tab2CheckBox2.TabIndex = 1 tab2CheckBox2.Visible = True tab2CheckBox1.Location = New System.Drawing.Point(32, 24) tab2CheckBox1.Text = "checkBox1" tab2CheckBox1.Size = New System.Drawing.Size(176, 32) tab2CheckBox1.TabIndex = 0 tab3RadioButton1.Location = New System.Drawing.Point(40, 32) tab3RadioButton1.Text = "radioButton1" tab3RadioButton1.Size = New System.Drawing.Size(152, 24) tab3RadioButton1.TabIndex = 0 tab1Label1.Location = New System.Drawing.Point(16, 24) tab1Label1.Text = "label1" tab1Label1.Size = New System.Drawing.Size(224, 96) tab1Label1.TabIndex = 1 tabPage3.Text = "tabPage3" tabPage3.Size = New System.Drawing.Size(256, 214) tabPage3.TabIndex = 2 tabPage2.Text = "tabPage2" tabPage2.Size = New System.Drawing.Size(256, 214) tabPage2.TabIndex = 1 tab1Button1.Location = New System.Drawing.Point(88, 144) tab1Button1.Size = New System.Drawing.Size(80, 40) tab1Button1.TabIndex = 0 tab1Button1.Text = "button1" Me.Text = "Form1" ' Adds controls to the second tab page. tabPage2.Controls.Add(Me.tab2CheckBox3) tabPage2.Controls.Add(Me.tab2CheckBox2) tabPage2.Controls.Add(Me.tab2CheckBox1) ' Adds controls to the third tab page. tabPage3.Controls.Add(Me.tab3RadioButton2) tabPage3.Controls.Add(Me.tab3RadioButton1) ' Adds controls to the first tab page. tabPage1.Controls.Add(Me.tab1Label1) tabPage1.Controls.Add(Me.tab1Button1) ' Adds the TabControl to the form. Me.Controls.Add(tabControl1) ' Adds the tab pages to the TabControl. tabControl1.Controls.Add(Me.tabPage1) tabControl1.Controls.Add(Me.tabPage2) tabControl1.Controls.Add(Me.tabPage3) End Sub Private Sub tab1Button1_Click(sender As Object, e As System.EventArgs) _ Handles tab1Button1.Click ' Inserts the code that should run when the button is clicked. End Sub Public Shared Sub Main() Application.Run(New Form1()) End Sub End Class

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

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

  • SelectedIndex

  • SelectedTab

    在 .NET Framework 2.0 中,还可以使用以下方法之一:

  • SelectTab

  • DeselectTab

    在 .NET Framework 2.0 中,可以通过处理下列事件之一来响应当前选项卡更改时:

  • Deselecting

  • Deselected

  • Selecting

  • Selected

    中的 TabControl 选项卡属于各个控件的一部分 TabControl ,但不是各个 TabPage 控件的一部分。 TabPage 类的成员(如 ForeColor 属性)仅影响选项卡页的客户端矩形,但不影响选项卡。 此外,该方法 Hide TabPage 不会隐藏选项卡。若要隐藏选项卡,必须从 TabControl.TabPages 集合中删除 TabPage 控件。

    在 .NET Framework 2.0 中,选项卡被视为选项卡页的一部分,用于确定事件发生的时间 Enter Leave 事件 TabPage 。 在早期版本的.NET Framework中, Enter 焦点进入或离开选项卡时,不会发生焦点的和 Leave 事件 TabPage ,但仅当焦点进入或离开选项卡页的客户端矩形时才会发生。

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

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

    启用视觉样式并且属性 Alignment 设置为非 Top 值时,选项卡内容可能无法正确呈现。 若要解决此问题,可以使用所有者绘图自行绘制选项卡内容。 有关详细信息,请参阅 如何:使用 TabControl 显示Side-Aligned选项卡

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

  •