¿Cómo puedo determinar el elemento primario de un ToolStripMenuItem? Con un MenuStrip normal, todo lo que tiene que hacer es usar la propiedad Parent, pero no parece que ToolStripMenuItem tenga esa propiedad. Tengo un ToolStripDropDownButton que tiene un par de ToolStripMenuItems y me gustaría poder identificar el padre de esos programáticamente.C# - Obtiene el elemento primario de ToolStripMenuItem
10
A
Respuesta
13
3
Prueba esto .....
ToolStripMenuItem t = (ToolStripMenuItem)sender;
ContextMenuStrip s = (ContextMenuStrip)t.Owner;
MessageBox.Show(s.SourceControl.Name);
0
Esto es lo que busca
private void ContextMenuStrip_Opening(object sender, CancelEventArgs e)
{
contextMenuStrip1.Tag = ((ContextMenuStrip)sender).OwnerItem;
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem senderItem = (ToolStripMenuItem)sender;
var ownerItem = (ToolStripMenuItem)((ContextMenuStrip)senderItem.Owner).Tag;
}
5
Esto funciona para mí:
ToolStripMenuItem menuItem = sender as ToolStripMenuItem;
ToolStrip toolStrip = menuItem.GetCurrentParent();
... de esto, puede diseñar un método para llevarlo desde un ToolStripMenuItem al azar al nivel más alto, como:
public static class ToolStripItemExtension
{
public static ContextMenuStrip GetContextMenuStrip(this ToolStripItem item)
{
ToolStripItem itemCheck = item;
while (!(itemCheck.GetCurrentParent() is ContextMenuStrip) && itemCheck.GetCurrentParent() is ToolStripDropDown)
{
itemCheck = (itemCheck.GetCurrentParent() as ToolStripDropDown).OwnerItem;
}
return itemCheck.GetCurrentParent() as ContextMenuStrip;
}
}
Cuestiones relacionadas
- 1. ¿ReflectionClass :: getProperties() también obtiene propiedades del elemento primario?
- 2. Mootools obtiene el índice hijo de un elemento de su elemento primario
- 3. Invoke ToolStripMenuItem
- 4. HTML: ¿Obtiene un elemento secundario para mostrar detrás (índice z más bajo) que su elemento primario?
- 5. HtmlElement.Parent devuelve el elemento primario incorrecto
- 6. Establecer el elemento primario de un formulario
- 7. Obteniendo el div primario del elemento
- 8. Obtiene el elemento ArrayList específico
- 9. jQuery mueve el elemento DOM dentro del elemento primario
- 10. XML xpath, obtenga el elemento primario hasta un elemento específico
- 11. Buscar el control principal de ToolStripMenuItem
- 12. La vista obtiene su estado dibujable (presionado, etc ...) desde su elemento primario
- 13. Determinando si el elemento es el último hijo de su elemento primario
- 14. Obtiene el elemento/objeto donde se coloca el elemento
- 15. CSS: ¿es posible seleccionar múltiples elementos secundarios diferentes dentro de un elemento primario sin repetir el elemento primario?
- 16. Cómo obtener el índice de un elemento primario en jQuery
- 17. abrir la ventana modal de iframe en el elemento primario
- 18. Obtiene el elemento más largo en Dict
- 19. Obtiene elemento (s) WPF bajo el mouse
- 20. Obtiene el primer elemento secundario inmediato
- 21. Inserte un elemento div como primario
- 22. Cómo aplicar el elemento secundario: pase el mouse pero no el elemento primario: pase el mouse
- 23. C# - Usar Vim es el Editor primario
- 24. Elemento hijo de estilo al pasar el mouse sobre el elemento primario
- 25. CSS: Margen superior cuando el elemento primario no tiene borde
- 26. Evitar que TextView se ajuste en el elemento primario
- 27. ¿Obtiene el índice del elemento actual en el bucle Powershell?
- 28. Lectura del documento primario de iFrame y cambio de elemento primario
- 29. JQuery: Obtener el ID de elemento primario de un elemento se ha hecho clic
- 30. Elemento secundario de ancho de porcentaje en el elemento primario posicionado en Internet Explorer 7
posible duplicado de [C# - Convertir código MenuStrip en ToolStrip] (http://stackoverflow.com/questions/4572381/c-convert-menustrip-code-to-toolstrip) –
Hay un ['Dueño'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripitem.owner.aspx), ['OwnerItem'] (http://msdn.microsoft.com/en-us/ library/system.windows.forms.toolstripitem.owneritem.aspx) y ['Parent'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripitem.parent.aspx) propiedad expuesta por la clase ['ToolStripMenuItem'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripmenuitem.aspx). ¿* Ninguno * de estos trabajo para usted? Es difícil entender lo que intentas lograr y por qué no funciona. –
@Hans, no es una pregunta duplicada, sino una más precisa para llegar a la raíz del problema. Y esa pregunta no me ha llevado a ninguna parte, incluso trataste de responderla sin éxito y luego borraste tu respuesta. – user