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);
}
}
}
donde quieres el texto y de dónde? ¿De la etiqueta o en la etiqueta? –
¿Ha considerado usar un cuadro combinado? Esto podría ser más intuitivo para que los usuarios entiendan –
Quiero mostrar el texto de la etiqueta (la etiqueta no es más que paret para el menú contextual) – Nagu