Tengo un ContextMenuStripque está asignado a varios cuadros de lista diferentes. Estoy tratando de averiguar cuándo ContextMenuStripse hace clic en en qué ListBoxse usó. Probé el siguiente código para comenzar, pero no funciona. El sendertiene el valor correcto, pero cuando intento para asignarlo a la menuSubmittedque 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;
}
}
}
ifdeclaraciones 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.