У меня есть, 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 уровня.