나는 ContextMenuStrip
여러 다른 목록 상자에 할당되어 있습니다. 나는 그것이 사용 된 ContextMenuStrip
것을 클릭 했을 때 알아 내려고 노력하고 ListBox
있습니다. 아래 코드를 시작으로 시도했지만 작동하지 않습니다. 는 sender
올바른 값을 가지고,하지만 난에 할당 할 때 menuSubmitted
그것은 null입니다.
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 레벨 중첩되기를 원하지 않는 경우 사용 하는 것이 좋습니다 .