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
TabControl
下面的代码示例使用 Visual Studio Windows 窗体 Designer创建包含三个
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
事件,否则不会为
TabControl
类引发以下事件:
Control.Click
、、
Control.DoubleClick
、
Control.MouseDown
Control.MouseUp
、
Control.MouseHover
、
Control.MouseEnter
Control.MouseLeave
和
Control.MouseMove
。
TabControl.TabPages
如果集合中至少有一个
TabPage
,并且用户与选项卡控件的标头交互 (
TabPage
名称出现在) ,则会
TabControl
引发相应的事件。 但是,如果用户交互位于选项卡页的 内
ClientRectangle
,则会
TabPage
引发相应的事件。
在显示选项卡页之前,不会创建 包含在 中的
TabPage
控件,并且这些控件中的任何数据绑定在选项卡页显示之前不会激活。
启用视觉样式并且 属性
Alignment
设置为 以外的
Top
值时,选项卡内容可能无法正确呈现。 若要解决此问题,可以使用所有者绘图自行绘制选项卡内容。 有关详细信息,请参阅
如何:使用 TabControl 显示Side-Aligned选项卡
。
当 属性
Alignment
设置为非
Top
值,并且属性
Appearance
设置为 以外的
Normal
值时,选项卡页内容可能无法正确呈现。