Tengo un ContextMenuStrip
que está asignado a varios cuadros de lista diferentes. Estoy tratando de averiguar cuándo ContextMenuStrip
se hace clic en en qué ListBox
se usó. Probé el siguiente código para comenzar, pero no funciona. El sender
tiene el valor correcto, pero cuando intento para asignarlo a la menuSubmitted
que es nulo.
private void MenuViewDetails_Click(object sender, EventArgs e)
{
ContextMenu menuSubmitted = sender as ContextMenu;
if (menuSubmitted != null)
{
Control sourceControl = menuSubmitted.SourceControl;
}
}
Cualquier ayuda sería genial. Gracias.
Usando la ayuda a continuación, lo descubrí:
private void MenuViewDetails_Click(object sender, EventArgs e)
{
ToolStripMenuItem menuItem = sender as ToolStripMenuItem;
if (menuItem != null)
{
ContextMenuStrip calendarMenu = menuItem.Owner as ContextMenuStrip;
if (calendarMenu != null)
{
Control controlSelected = calendarMenu.SourceControl;
}
}
}
if
declaraciones y usarlasif (menuItem == null) return;
si eres como yo y no quieres que tu código que lo maneja esté anidado en 2 niveles adicionales innecesarios.