選項卡控制元件TabControl

費勁_奮進發表於2014-04-24

判斷選中的選項卡(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)建立多行選項卡


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


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


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

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


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


相關文章