Получить ContextMenu, к которому принадлежит ToolStripDropDownItem? - PullRequest
0 голосов
/ 17 марта 2010

Как я могу получить ContextMenu, к которому принадлежит ToolStripDropDownItem? Это делается с целью использования ContextMenu.SourceControl в качестве логического sender для события.

Ответы [ 2 ]

1 голос
/ 17 марта 2010
`ToolStripItem.OwnerItem` [http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripitem.owneritem.aspx][1]

Это свойство может быть использовано для перехода по дереву пунктов меню к элементу верхнего уровня ... Разве вы не являетесь тем, кем являетесь после свойства Owner меню?

var control = ((ContextMenuStrip)topLevelMenuItem.Owner).SourceControl;

Очевидно, используйте as и т. Д. И делайте ваши нулевые проверки ...

Если мне не хватает места, возможно, опубликуйте фрагмент кода меню, созданного с помощью кода, чтобы уточнить типы (ContextMenu против ContextMenuStrip и т. Д.)

ПК: -)

0 голосов
/ 17 марта 2010

Мне нужно было использовать свойство Owner как ContextMenuStrip.

ToolStripDropDownItem t = sender as ToolStripDropDownItem;
if (t == null)
    return null;
ContextMenuStrip cm = t.Owner as ContextMenuStrip;
if (cm == null)
    return null;
return cm.SourceControl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...