2013-06-13 7 views
8

Sto usando VS 2008 e vorrei aggiungere un contextMenu (sicuramente non ContextMenuStrip !!) alla mia applicazione. Non c'è contextMenu (!!) nella casella degli strumenti. Quindi, come posso aggiungerlo programmaticamente al mio codice?Come aggiungere un menu contestuale a C# (VS 2008)?

Grazie in anticipo,

+2

WinForms? WPF? ASP.NET? Silverlight? –

risposta

12

Qui creiamo un metodo per rimuovere un TabItem. Il metodo accetta un TabItem necessario per essere rimosso come parametro.

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 

    } 

    } 

Ora Fare doppio clic sulla finestra e aggiungere questo codice all'evento di caricamento della finestra.

// 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 

Compilare ed eseguire il progetto. Facendo clic con il tasto destro su Tab1 vedrai un menu a comparsa con l'opzione chiudi per chiudere (rimuovere) quel tabert.

+1

Informazioni dettagliate possono essere trovate qui http://www.redmondpie.com/adding-tabitem-at-runtime-in-a-c-wpf-application/ –

+1

grazie! proprio quello di cui avevo bisogno – SandhraPrakash

2

Suppongo che tu usi Winforms, puoi inizializzare la classe ContextMenu nel tuo codice. Ha un 2 constructor che è possibile passare come parametro a MenuItem.

ContextMenu cm = new ContextMenu(); 

o

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