- - PR -
MDIでのMenuStripの使い方
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-31 11:14
いつもお世話になっています。
MenuStripの使い方(動作)がいまいち分からないので質問します。 MSDNのサンプルを参考にプロジェクトを作ってみました。 http://msdn2.microsoft.com/ja-JP/library/ms171659.aspx 使用している環境はVS2005 C#です。 Fileメニューを開いた時に、サブメニューの状態を切り替えたいと思い、Form1とForm2のFileMenuItemにDropDownOpenedのイベントハンドラを登録しました。 ここで問題となるのですが、Form1の方のDropDownOpendは呼び出されるのですが、Form2の方のDropDownOpenedが呼び出されません。 Form2の方のDropDownOpenedも呼び出されるようにしたいのですが、実現方法が間違っているでしょうか? よろしくお願いします。 P.S 見栄えはMenuStripの方がきれいなんですが、メニューのマージや動きが分かりにくい… .Net1.1のMainMenuの方が使いやすかった気がする… | ||||||||||||
|
投稿日時: 2006-08-31 11:51
#やるべきかはおいといて
#Form1:MDI,Form2:Childと仮定 難なく動きましたが。。。 あと、DropDownOpenedは開ききった後なのでDropDownOpeningを使ったほうがよいかと思います。 | ||||||||||||
|
投稿日時: 2006-08-31 13:12
やり方が間違えているということでしょうか?
ご推察の通りForm1:MDI Form2:Childです。。 もう少し追加で状況を説明します。 作成したいアプリはForm2の方のメニューは非表示として、Form1のメニューに必要な項目をマージして使用したいと思っています。イメージ的にはVC6のMDIアプリケーションです。 よってForm2が表示されているときに、Form1のメニューをオープンすると(マージしたので)Form2のDropDownOpenedが呼び出されると思っていました。ここの前提条件が間違っていますか? 再度サンプルを作成して試してみましたが、Form1のメニューを開いた時にForm2のDropDownOpenedは呼び出されませんでした。
こちらはご指摘のとおりですね。ありがとうございます。 | ||||||||||||
|
投稿日時: 2006-08-31 13:49
はっとして、考えてみたのですが
Form1のFileメニューの下にForm2の「Fileメニューの子」がマージされるので Form1のメニューにはForm2のFileメニューオブジェクトはいないことになりますね。 なので、前言は撤回します。m(_ _)m #文章を読み違えていました。 [ メッセージ編集済み 編集者: まどか 編集日時 2006-08-31 13:51 ] |
1