アプリケーションのプラグインを開発しています。作成したコントロールをホストアプリケーションに登録する必要があります。登録しないと、メッセージを受信せず、事実上無効になります。登録は、コントロールのウィンドウハンドルを使用して実行されます。(この部分を与えられたものとして扱ってください、それは私がこれを必要とする理由についての背景にすぎません。)
これを行うために、作成するすべてのWinFormsコントロールについて、そのHandleCreated
イベントとHandleDestroyed
イベントを使用して、コントロールのハンドルとそれが所有する子コントロールを再帰的に登録/登録解除します。
で同じことができます。ContextMenuStrip
これは最初のレベルのアイテムでは問題ありませんが、これらのアイテムのいずれかにサブメニューがある場合、開くために開いたサブメニューのハンドルを取得する方法がわかりません。登録してください。
ToolStripMenuItem
オブジェクトはから継承し、からは継承しSystem.ComponentModel.Component
ないSystem.Windows.Forms.Control
ため、.Handle
プロパティもイベントもHandleCreated
ありません。HandleDestroyed
(作成時に)ハンドルが必要なウィンドウについては、画像を参照してください。