- PR -

MDIでのMenuStripの使い方

1
投稿者投稿内容
いろは
常連さん
会議室デビュー日: 2005/05/11
投稿数: 31
投稿日時: 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の方が使いやすかった気がする…
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-08-31 11:51
#やるべきかはおいといて

引用:

Fileメニューを開いた時に、サブメニューの状態を切り替えたいと思い、Form1とForm2のFileMenuItemにDropDownOpenedのイベントハンドラを登録しました。
ここで問題となるのですが、Form1の方のDropDownOpendは呼び出されるのですが、Form2の方のDropDownOpenedが呼び出されません。



#Form1:MDI,Form2:Childと仮定
難なく動きましたが。。。

あと、DropDownOpenedは開ききった後なのでDropDownOpeningを使ったほうがよいかと思います。
いろは
常連さん
会議室デビュー日: 2005/05/11
投稿数: 31
投稿日時: 2006-08-31 13:12
引用:

まどかさんの書き込み (2006-08-31 11:51) より:
#やるべきかはおいといて



やり方が間違えているということでしょうか?

引用:

#Form1:MDI,Form2:Childと仮定
難なく動きましたが。。。



ご推察の通りForm1:MDI Form2:Childです。。
もう少し追加で状況を説明します。
作成したいアプリはForm2の方のメニューは非表示として、Form1のメニューに必要な項目をマージして使用したいと思っています。イメージ的にはVC6のMDIアプリケーションです。
よってForm2が表示されているときに、Form1のメニューをオープンすると(マージしたので)Form2のDropDownOpenedが呼び出されると思っていました。ここの前提条件が間違っていますか?
再度サンプルを作成して試してみましたが、Form1のメニューを開いた時にForm2のDropDownOpenedは呼び出されませんでした。

引用:

あと、DropDownOpenedは開ききった後なのでDropDownOpeningを使ったほうがよいかと思います。



こちらはご指摘のとおりですね。ありがとうございます。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-08-31 13:49
はっとして、考えてみたのですが
Form1のFileメニューの下にForm2の「Fileメニューの子」がマージされるので
Form1のメニューにはForm2のFileメニューオブジェクトはいないことになりますね。

なので、前言は撤回します。m(_ _)m
#文章を読み違えていました。

[ メッセージ編集済み 編集者: まどか 編集日時 2006-08-31 13:51 ]
1

スキルアップ/キャリアアップ(JOB@IT)