1. 程式人生 > >選項卡控制元件TabControl

選項卡控制元件TabControl

判斷選中的選項卡(TabPage)

(1)用TabControl 的SelectedTab屬性

if(tabControl1.SelectedTab == tabPage2)

(2)用TabControl 的SelectedIndex 屬性

if(tabControl1.SelectedTab == 1)

設定當前選項卡(TabPage)

(1)用SelectTab 方法

將指定的選項卡(TabPage)設定為當前的選擇卡(TabPage)。

過載形式如下:

TabControl.SelectTab (String)使具有指定名稱的選項卡成為當前選項卡。

TabControl.SelectTab (TabPage)

使指定的 TabPage 成為當前選項卡。

(2)DeselectTab 方法

將指定的選項卡(TabPage)後面的選項卡成為當前選項卡 (TabPage)。

過載形式如下:

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 事件

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)在選項卡的標籤部位顯示圖示

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)建立多行選項卡

  1. 新增所需的選項卡頁的數量。
  2. 將 TabControl 的 Multiline 屬性設定為 true。
  3. 如果選項卡尚未以多行方式顯示,則設定 TabControl 的 Width 屬性,使其比所有的選項卡都窄。

(3)在控制元件一側排列選項卡

將 TabControl 的 Alignment 屬性設定為 Left 或 Right。

(4)以程式設計方式啟用或禁用選項卡

將 TabPage 的 Enabled 屬性設定為 true 或 false。
tabPage1.Enabled = false;