Domanda

Voglio aggiungere tutto ciò che è scritto in una casella di testo a un menustrip. Nel File > Ricerche recenti che ho.

Come posso fare programmaticamente? E posso assegnare un gestore di eventi in modo dinamico in modo tale che quando un utente fa clic sull'elemento X in quella sottocartella, il testo viene copiato INDIETRO nella casella di testo?

MODIFICA: Come posso chiamare programmaticamente la cartella Busquedas Recientes (nella foto)

alt text

È stato utile?

Soluzione

Puoi farlo sfruttando il parametro mittente oggetto nel gestore eventi. Gran parte di questo è fuori dalla mia testa, quindi sto solo indovinando che verrà compilato ma dovrebbe iniziare.

void AddMenuItem(string text, string action)
{
   ToolStripMenuItem item = new ToolStripMenuItem();
   item.Text = text;
   item.Click += new EventHandler(item_Click);
   item.Tag = action;

   //first option, inserts at the top
   //historyMenu.Items.Add(item);

   //second option, should insert at the end
   historyMenuItem.DropDownItems.Insert(historyMenuItem.DropDownItems.Count, item);
}

private void someHistoryMenuItem_Click(object sender, EventArgs e)
{
   ToolStripMenuItem menuItem = sender as ToolStripMenuItem;

   string args = menuItem.Tag.ToString();

   YourSpecialAction(args);
}

Altri suggerimenti

È piuttosto semplice. Puoi fare quanto segue:

ToolStripMenuItem menuItem

foreach (string text in collectionOfText)
{
    ToolStripMenuItem foo = new ToolStripMenuItem(text);
    foo.Click += new EventHandler(ClickEvent);
    menuItem.DropDownItems.Add(foo);
}

Successivamente, se l'evento Click non funziona (ho avuto problemi a non rilevare la voce di menu corretta), puoi aggiungere un " DropDownItemClicked " evento al menuItem. e per ottenere il testo dell'elemento su cui hai fatto clic, esegui:

private void DropedDownItemClickedEvent(object sender, ToolStripItemClickedEventArgs e)
{
    string text = e.ClickedItem.Text;
}

Spero che sia d'aiuto.

Oh, e non dimenticare di rimuovere anche l'Evento. Ho dimenticato di farlo con tutti i menu dinamici che avevo creato e in qualche modo ho finito per mangiare metà della mia memoria. : D

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top