1

アプリケーションのプラグインを開発しています。作成したコントロールをホストアプリケーションに登録する必要があります。登録しないと、メッセージを受信せず、事実上無効になります。登録は、コントロールのウィンドウハンドルを使用して実行されます。(この部分を与えられたものとして扱ってください、それは私がこれを必要とする理由についての背景にすぎません。)

これを行うために、作成するすべてのWinFormsコントロールについて、そのHandleCreatedイベントとHandleDestroyedイベントを使用して、コントロールのハンドルとそれが所有する子コントロールを再帰的に登録/登録解除します。

で同じことができます。ContextMenuStripこれは最初のレベルのアイテムでは問題ありませんが、これらのアイテムのいずれかにサブメニューがある場合、開くために開いたサブメニューのハンドルを取得する方法がわかりません。登録してください。

ToolStripMenuItemオブジェクトはから継承し、からは継承しSystem.ComponentModel.ComponentないSystem.Windows.Forms.Controlため、.HandleプロパティもイベントもHandleCreatedありません。HandleDestroyed

(作成時に)ハンドルが必要なウィンドウについては、画像を参照してください。 ここに画像の説明を入力してください

4

1 に答える 1

2

を使用しToolStripMenuItem.DropDown.Handleます。

于 2012-06-11T16:47:18.307 に答える