none
メニューストライプのマージとショートカットキー RRS feed

  • 質問

  • 下記のように、親画面のメインメニューストリップに子画面のメインメニューストリップをマージさせる場合に、上手くショートカットキーがマージされていません。

     

    1.2つの子画面A、Bを用意する。それぞれのメインメニューストリップにDelショートカットキーを持つDeleteメニューを用意する。

    2.イベントCが起こった場合は子画面Aのメインメニューストリップをマージする。

    3.イベントDが起こった場合は子画面Bのメインメニューストリップをマージする。

     

    問題は、どちらの子画面のメインメニューストリップがマージされていようとも、Delをクリックすると、子画面AのDeleteメニューが実行されてしまいます。

     

    どなたか、原因と解決策を知りませんか?教えてください。

    2007年5月16日 6:35

すべての返信

  •  fuga456 さんからの引用

    1.2つの子画面A、Bを用意する。それぞれのメインメニューストリップにDelショートカットキーを持つDeleteメニューを用意する。

    2.イベントCが起こった場合は子画面Aのメインメニューストリップをマージする。

    3.イベントDが起こった場合は子画面Bのメインメニューストリップをマージする。

     
    私が知らないだけだったらごめんなさい。MenuStrip には、MDI の親子間の自動マージ以外に、メニューのマージ機能というのは明示的に存在しませんよね?
    MDI のメニューのマージは、子フォームのアクティブ化で自動的に行われるので、イベントにおうじてマージを実施することもできないので、独自にコードでマージの実装されているということでしょうか?
     
    そうであれば、そのあたりのコードを出さないと、誰にも答えられないのではないかと思います。
    念のため、MDI の親子ウィンドウで2つの子フォーム A, B を切り替えて Delete キーに割り当てたメニューを操作して見ましたが、特に動作に問題はないようでした。
    # 子フォームにメニューを3つ程度つくって、クリックイベントで使用されたメニューを判別できる MessageBox を設定しただけの単純なものです
     
    2007年5月17日 13:53