您的位置:首页 > 编程语言 > C#

C# TabControl

2013-12-19 16:31 253 查看


判断选中的选项卡(TabPage)

(1)用TabControl 的SelectedTab属性

if(tabControl1.SelectedTab == tabPage2)

(2)用TabControl 的SelectedIndex 属性

if(tabControl1.SelectedTab == 1)


设置当前选项卡(TabPage)

(1)用SelectTab 方法

将指定的选项卡(TabPage)设置为当前的选择卡(TabPage)。

重载形式如下:

TabControl.SelectTab (Int32)使具有指定索引的选项卡成为当前选项卡。

TabControl.SelectTab (String)使具有指定名称的选项卡成为当前选项卡。

TabControl.SelectTab (TabPage)使指定的 TabPage 成为当前选项卡。

(2)DeselectTab 方法

将指定的选项卡(TabPage)后面的选项卡成为当前选项卡 (TabPage)。

重载形式如下:

TabControl.DeselectTab (Int32)使具有指定索引的选项卡后面的选项卡成为当前选项卡。

TabControl.DeselectTab (String)使具有特定名称的选项卡后面的选项卡成为当前选项卡。

TabControl.DeselectTab (TabPage)使指定的 TabPage 后面的选项卡成为当前选项卡。


TabControl 变更事件

在 TabControl 中的当前选项卡发生更改时,将按以下顺序发生下列事件。
Deselecting
Deselected
Selecting
Selected

(1)Deselecting 事件

在取消选择某个选项卡(TabPage)之前发生,使处理程序能够取消选项卡(TabPage)更改。

(2)Deselected 事件

当取消选择选项卡(TabPage)时发生。

(3)Selecting 事件

在取消选择某个选项卡(TabPage)之前发生,使处理程序能够取消选项卡(TabPage)更改。

(4)Selected 事件

当选择某个选项卡(TabPage)时发生。

private void TabControl1_Selected(Object sender, TabControlEventArgs e)



System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder(); 

messageBoxCS.AppendFormat("{0} = {1}", "TabPage", e.TabPage ); 

messageBoxCS.AppendLine(); 

messageBoxCS.AppendFormat("{0} = {1}", "TabPageIndex", e.TabPageIndex ); 

messageBoxCS.AppendLine(); 

messageBoxCS.AppendFormat("{0} = {1}", "Action", e.Action ); 

messageBoxCS.AppendLine(); 

MessageBox.Show(messageBoxCS.ToString(), "Selected Event" ); 

}

(5)SelectedIndexChanged 事件

当 SelectedIndex 属性更改时发生。

private void TabControl1_SelectedIndexChanged(Object sender, EventArgs e)



MessageBox.Show("You are in the TabControl.SelectedIndexChanged event."); 

}


添加、删除 选项卡(TabPage)

(1)添加

可以通过 TabPages 属性的 Add 方法动态的添加TabPage。

string title = "TabPage " + (tabControl1.TabCount + 1).ToString(); 

TabPage myTabPage = new TabPage(title); 

tabControl1.TabPages.Add(myTabPage);

(2)删除

动态的删除一个TabPage,可以用 TabPages 属性的 Remove 方法。删除所有TabPage,用 TabPages 属性的 Clear 方法

// 删除选中的选项卡 

tabControl1.TabPages.Remove(tabControl1.SelectedTab); 

//删除全部选项卡 

tabControl1.TabPages.Clear();


禁用选项卡(TabPage)

添加TabControl 控件的SelectedIndexChanged 事件(用户从一个选项卡(TabPage)切换到另一个选项卡(TabPage)时引发的事件)。在该事件中检查是否满足条件,如果满足则将该选项卡(TabPage)的Enabled
属性设置为 false。

//如果选择了CredentialCheck则显示tabPage2,否则弹出错误窗口,显示tabPage3

private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e) 



// Check Credentials Here 

if ((CredentialCheck.Checked = true) & (tabControl1.SelectedTab == tabPage2)) 



tabControl1.SelectedTab = tabPage2; 



else if ((CredentialCheck.Checked = false) & (tabControl1.SelectedTab == tabPage2)) 

{

tabControl1.tabPage2.Enabled=false;

MessageBox.Show("Unable to load tab. You have insufficient access privileges."); 

tabControl1.SelectedTab = tabPage3; 



}


更改 TabControl 的外观

通过使用 TabControl 控件和组成控件上各选项卡的 TabPage 对象的属性,可以更改 Windows 窗体中选项卡的外观。通过设置这些属性,可使用编程方式在选项卡上显示图像,以垂直方式而非水平方式显示选项卡,显示多行选项卡,以及启用或禁用选项卡。

(1)在选项卡的标签部位显示图标

A.向窗体添加 ImageList 控件。

B.将图像添加到图像列表中。

ImageList 组件添加或移除图像

以编程方式添加图像

public void addImage() 



// Be sure that you use an appropriate escape sequence (such as the @) when specifying the location of the file. 

System.Drawing.Image myImage = 

Image.FromFile 

(System.Environment.GetFolderPath 

(System.Environment.SpecialFolder.Personal) 

+ @"/Image.gif"); 

imageList1.Images.Add(myImage); 

}

以编程方式移除所有图像

可以使用 Remove 方法移除单个图像 

可以使用 Clear 方法清除图像列表中的所有图像。 

//Removes the first image in the image list 

ImageList1.Images.Remove(myImage) 

//Clears all images in the image list 

ImageList1.Images.Clear()

C.将 TabControl 控件的 ImageList 属性设置为 ImageList 控件。

D.将 TabPage 的 ImageIndex 属性设置为列表中的相应图像的索引。

(2)创建多行选项卡
添加所需的选项卡页的数量。
将 TabControl 的 Multiline 属性设置为 true。
如果选项卡尚未以多行方式显示,则设置 TabControl 的 Width 属性,使其比所有的选项卡都窄。

(3)在控件一侧排列选项卡

将 TabControl 的 Alignment 属性设置为 Left 或 Right。

(4)以编程方式启用或禁用选项卡

将 TabPage 的 Enabled 属性设置为 true 或 false。 

tabPage1.Enabled = false;

(5)将选项卡显示为按钮

将 TabControl 的 Appearance 属性设置为 Buttons 或 FlatButtons。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: