2013-06-13 84 views

回答

12

這裏我們創建刪除的TabItem的方法。該方法接受需要作爲參數刪除的TabItem。

private void closeTabItem(TabItem item) 
    { 

    if (item != null) 
    { 

     // find the parent tab control 

     TabControl tabControl = item.Parent as TabControl; 

     if (tabControl != null) 

      tabControl.Items.Remove(item); // remove tabItem 

    } 

    } 

現在雙擊窗口並將此代碼添加到窗口加載事件。

// Create Context Menu 

     ContextMenu contextMenu1; 

    contextMenu1 = new ContextMenu(); 

    //Create menu items 

    MenuItem menuItem1; 

    menuItem1 = new MenuItem(); 

    //add menu item in context menu 

     contextMenu1.Items.Add(menuItem1); 

     menuItem1.Header = "Close"; // define name of context menu 

    //Create Tab Items 

     TabItem Item1 = new TabItem(); 

    Item1.Header = "Tab1"; 

    TabItem Item2 = new TabItem(); 

    Item2.Header = "Tab2"; 

    // define clicking event of menuitem 

    menuItem1.Click += delegate { closeTabItem(Item1); }; 

    // Incorporate context menu with tab items 

    Item1.ContextMenu = contextMenu1; 

    //Create tab Control 

    TabControl tabControl1 = new TabControl(); 

    //Insert Tab Items in Tab Control 

    tabControl1.Items.Add(Item1); 

     tabControl1.Items.Add(Item2); 

     Master.Childer.Add(tabControl1); // Insert Tab Control in Master Grid 

現在編譯並執行該項目。在右鍵單擊Tab1時,您將看到一個彈出菜單,其中包含close選項以關閉(刪除)該tabItem。

+1

詳細信息可以在這裏找到http://www.redmondpie.com/adding-tabitem-at-runtime-in-a-c-wpf-application/ –

+1

謝謝!正是我需要的 – SandhraPrakash

2

我假設你使用Winforms,你可以在你的代碼中初始化ContextMenu類。它有一個2 constructor您可以通過MenuItem作爲參數。

ContextMenu cm = new ContextMenu(); 

ContextMenu cm1 = new ContextMenu(new MenuItem[]); 
-2
ContextMenu context = new ContextMenu(); 
context.Items.Add(new MenuItem().Header = "Add To Favorites"); 
相關問題