C# 获取ContextMenuStrip子菜单的句柄

C# 获取ContextMenuStrip子菜单的句柄,c#,winforms,contextmenu,C#,Winforms,Contextmenu,我正在为一个应用程序开发一个插件,我必须将我创建的任何控件注册到我的宿主应用程序中,否则它们不会收到任何消息,并且会被有效地禁用。使用控件的窗口句柄执行注册(请将此部分视为给定部分,这只是我为什么需要此部分的背景资料。) 为了做到这一点,对于我创建的每个winforms控件,我使用其HandleCreated事件和HandleDestroyed事件递归注册/取消注册控件的句柄及其拥有的所有子控件 我可以用ContextMenuStrip做同样的事情,这对于第一级的项目来说很好,但是如果其中任何一

我正在为一个应用程序开发一个插件,我必须将我创建的任何控件注册到我的宿主应用程序中,否则它们不会收到任何消息,并且会被有效地禁用。使用控件的窗口句柄执行注册(请将此部分视为给定部分,这只是我为什么需要此部分的背景资料。)

为了做到这一点,对于我创建的每个winforms控件,我使用其
HandleCreated
事件和
HandleDestroyed
事件递归注册/取消注册控件的句柄及其拥有的所有子控件

我可以用
ContextMenuStrip
做同样的事情,这对于第一级的项目来说很好,但是如果其中任何一个项目都有子菜单,我不知道如何获得打开的子菜单的句柄来注册它

ToolStripMenuItem
对象继承自
System.ComponentModel.Component
而非
System.Windows.Forms.Control
,因此它们没有
.Handle
属性,也没有
HandleCreated
HandleDestroyed
事件

查看图像,了解我需要哪个窗口的句柄(创建时)。

使用
ToolStripMenuItem.DropDown.Handle

Doh!错过了。我将把它与
打开的
事件一起使用。谢谢