2013-12-23 47 views
0

我將所有標籤頁從WinForms TabControl顯示到MenuStrip中。MenuStrip中的枚舉TabPages - 點擊事件

填充菜單很簡單,但我似乎無法得到事件處理程序設置選定時焦點到TabPage。

由於標籤是動態創建的,它們沒有對象名稱。所以在menu_click事件中,行tabEditor.SelectedTab = tabpage;沒有意義。

如何鏈接menu_click事件以顯示選定的選項卡?

private void pagesToolStripMenuItem_DropDownOpening(object sender, EventArgs e) 
    { 
     //first clear all items already loaded 
     pagesToolStripMenuItem.DropDownItems.Clear(); 

     //now re-populate them 
     foreach (TabPage t in tabEditor.TabPages) 
     { 
      //create a menu item 
      ToolStripMenuItem menu = new ToolStripMenuItem(t.Text); 


      //add an event handler 
      menu.Click += new EventHandler(menu_Click); 

      pagesToolStripMenuItem.DropDownItems.Add(menu); 
     } 
    } 



    void menu_Click(object sender, EventArgs e) 
    { 
     ToolStripMenuItem menu = (ToolStripMenuItem) sender; 

     //Now show the Tab - something like this ! 
     // 
     tabEditor.SelectedTab = tabpage; 


    } 

回答

1

試試這個:

private void tabsToolStripMenuItem_DropDownOpening(object sender, EventArgs e) 
{ 
    ... 
    //create a menu item 
    ToolStripMenuItem menu = new ToolStripMenuItem(t.Text); 
    //Associate a tab index with a menu item 
    menu.Tag = t.TabIndex; 
    ... 
} 

private void menu_Click(object sender, EventArgs e) 
{ 
    ToolStripMenuItem menu = (ToolStripMenuItem)sender; 
    //Use a tab index associated with a menu item to select a tab 
    tabEditor.SelectedIndex = (int)menu.Tag; 
} 
+0

不錯的感謝,這完美地工作 – IEnumerable