У мене є, ContextMenuStripщо присвоюється декільком різним вікнам списків. Я намагаюся зрозуміти, коли ContextMenuStripнатискається, для чого ListBoxвін був використаний. Я спробував наведений нижче код як початок, але він не працює. Значення senderмає правильне значення, але коли я намагаюся призначити це значення, menuSubmittedвоно є нульовим.
private void MenuViewDetails_Click(object sender, EventArgs e)
{
ContextMenu menuSubmitted = sender as ContextMenu;
if (menuSubmitted != null)
{
Control sourceControl = menuSubmitted.SourceControl;
}
}
Будь-яка допомога була б чудовою. Дякую.
Використовуючи допомогу нижче, я зрозумів це:
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твердження і використовувати,if (menuItem == null) return;якщо ви схожі на мене і не хочете, щоб ваш код, який обробляє його, був вкладеним додатковими непотрібними 2 рівнями.