У мене є, 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 рівнями.