Eu tenho um ContextMenuStrip
que está atribuído a várias caixas de listagem diferentes. Estou tentando descobrir quando o ContextMenuStrip
é clicado em que ListBox
foi usado. Tentei o código abaixo para começar, mas não está funcionando. O sender
tem o valor correto, mas quando tento atribuí-lo ao, menuSubmitted
ele é nulo.
private void MenuViewDetails_Click(object sender, EventArgs e)
{
ContextMenu menuSubmitted = sender as ContextMenu;
if (menuSubmitted != null)
{
Control sourceControl = menuSubmitted.SourceControl;
}
}
Qualquer ajuda seria ótimo. Obrigado.
Usando a ajuda abaixo, descobri:
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
instruções e usarif (menuItem == null) return;
se você for como eu e não quiser que seu código que lida com isso seja aninhado em 2 níveis desnecessários extras.