reparar quitar opciones modificar menú elementos editar derecho contextual configurar como carpetas aparece agregar c# .net contextmenu

c# - opciones - quitar elementos menu contextual



Agregue elementos dinámicamente a un Menú contextual y establezca Acción de clic (2)

Por lo tanto, puede borrar los elementos del menú contextual con:

myContextMenuStrip.Items.Clear();

Puede agregar un artículo llamando:

myContextMenuStrip.Items.Add(myString);

El menú contextual tiene un evento ItemClicked. Su controlador podría verse así:

private void myContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { DoSomething(e.ClickedItem.Text); }

Parece que funciona bien para mí. Avíseme si malinterpreté su pregunta.

Tengo una lista de cadenas que se regenera cada 5 segundos. Quiero crear un menú contextual y establecer sus elementos de forma dinámica usando esta lista. El problema es que no tengo ni idea de cómo hacer eso y administrar la acción Click para cada elemento generado (que debería usar el mismo método con el parámetro DoSomething ("item_name")).

¿Cómo debería hacer esto?

Gracias por tu tiempo. Atentamente.


Otra alternativa que utiliza un objeto ToolStripMenuItem :

//////////// Create a new "ToolStripMenuItem" object: ToolStripMenuItem newMenuItem= new ToolStripMenuItem(); //////////// Set a name, for identification purposes: newMenuItem.Name = "nameOfMenuItem"; //////////// Sets the text that will appear in the new context menu option: newMenuItem.Text = "This is another option!"; //////////// Add this new item to your context menu: myContextMenuStrip.Items.Add(newMenuItem);


Dentro del evento ItemClicked de su myContextMenuStrip , puede verificar qué opción se ha elegido ( según el nombre de la propiedad del elemento del menú )

private void myContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { ToolStripItem item = e.ClickedItem; //////////// This will show "nameOfMenuItem": MessageBox.Show(item.Name, "And the clicked option is..."); }