2009-08-26 27 views
10

Hola, agregué un menú contextual en la etiqueta (C#, winforms). mi menú contextual tiene 3 elementos secundarios y quiero mostrar el texto de la etiqueta cuando hago clic en cualquiera de los elementos del menú contextual.menú contextual principal?

gracias de antemano

+0

donde quieres el texto y de dónde? ¿De la etiqueta o en la etiqueta? –

+0

¿Ha considerado usar un cuadro combinado? Esto podría ser más intuitivo para que los usuarios entiendan –

+0

Quiero mostrar el texto de la etiqueta (la etiqueta no es más que paret para el menú contextual) – Nagu

Respuesta

18

El control ContextMenuStrip tiene una propiedad SourceControl, que tendrán una referencia al control que la abrió. Puede usarlo para extraer el texto del control:

private void MenuStripItem_Click(object sender, EventArgs e) 
{ 
    ToolStripItem item = (sender as ToolStripItem); 
    if (item != null) 
    { 
     ContextMenuStrip owner = item.Owner as ContextMenuStrip; 
     if (owner != null) 
     { 
      MessageBox.Show(owner.SourceControl.Text); 
     } 
    } 
} 

Si en lugar de un ContextMenuStrip utiliza un ContextMenu, el código debería tener este aspecto:

private void menuItem1_Click(object sender, EventArgs e) 
{ 
    MenuItem item = (sender as MenuItem); 
    if (item != null) 
    { 
     ContextMenu owner = item.Parent as ContextMenu; 
     if (owner != null) 
     { 
      MessageBox.Show(owner.SourceControl.Text); 
     } 
    } 
} 
+0

Quiero mostrar el texto de la etiqueta (la etiqueta no es más que paret para el menú contextual) – Nagu

+0

hey aquí estamos obteniendo MenuItem no ToolStripItem – Nagu

+0

@Nagu: ejemplo de código agregado para' ContextMenu '. –

0

Get menú contextual de Padres Nombre del control MessageBox.Show (contextMenuStrip1.SourceControl.Name.ToString());

Cuestiones relacionadas