MDIアプリ実行時に追加するメニューのマージ
- 題名: MDIアプリ実行時に追加するメニューのマージ
- 著者: Iraquser
- 日時: 2014/01/09 15:35:31
- ID: 32046
- この記事の返信元: 
- この記事への返信: 
- ツリーを表示
 
 
- 題名: Re[1]: MDIアプリ実行時に追加するメニューのマージ
- 著者: Azulean
- 日時: 2014/01/09 19:24:24
- ID: 32048
- この記事の返信元: 
- この記事への返信: 
- ツリーを表示
 
 
- 題名: Re[2]: MDIアプリ実行時に追加するメニューのマージ
- 著者: Iraquser
- 日時: 2014/01/09 20:14:29
- ID: 32049
- この記事の返信元: 
- この記事への返信: 
- ツリーを表示
 
 
 
分類:[.NET]
【解決したい問題】 現在、『MDIアプリケーションのメニューのマージ』(http://dobon.net/vb/dotnet/form/mdimergemenu.html)を 参照し、MDIアプリを開発中です。 親フォームのメニューに後続するような形で子フォーム側のメニュー([ChildItem1])項目を合成して表示させ たいのですが、実行してみると親フォームには親フォームのメニュー項目([Item1]・[Item2])のみ表示され、 子フォームのメニュー項目は子フォームに表示されます(合成されません)。 下記の記述の何処が不味いのでしょうか? ≪親フォーム≫ Public Class Form1 Private MenuStrip1 As New MenuStrip Private Item1ToolStripMenuItem As New ToolStripMenuItem Private Item2ToolStripMenuItem As New ToolStripMenuItem Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load Me.IsMdiContainer = True Item1ToolStripMenuItem.Text = "Item1" Item2ToolStripMenuItem.Text = "Item2" Me.Controls.Add(MenuStrip1) MenuStrip1.Items.Add(Item1ToolStripMenuItem) MenuStrip1.Items.Add(Item2ToolStripMenuItem) End Sub Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown Dim f As New Form2 f.MdiParent = Me f.Show() End Sub End Class ≪子フォーム≫ Public Class Form2 Private MenuStrip1 As New MenuStrip Private ChildItem1ToolStripMenuItem As New ToolStripMenuItem Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load 'MenuStrip1.Visible = False ChildItem1ToolStripMenuItem.Text = "ChildItem1" ChildItem1ToolStripMenuItem.MergeAction = MergeAction.Append Me.Controls.Add(MenuStrip1) MenuStrip1.Items.Add(ChildItem1ToolStripMenuItem) End Sub End Class 【解決するために何をしたか】 親フォーム/子フォームのメニューを、フォームデザイナで追加して実行した場合はTipsの通りに動作する のですが、実行時に動的に作成して実行した場合、子フォームのメニュー項目が親フォームのメニューに追加さ れません。 【追加事項】 開発中アプリの要件により、メニュー項目は実行時に動的に追加する事が必要(設定ファイルからメニュー項目 の情報の一部を読み込んで編集するため)なため、フォームデザイナでのメニュー追加はできないんです。