<ここからコード> 'all.txtから項目を読み込みAllToolStripMenuItemインスタンスを作成 Dim sReaderC As New System.IO.StreamReader("all.txt", System.Text.Encoding.Default) Dim AllToolStripMenuItem As ToolStripMenuItem = New ToolStripMenuItem() AllToolStripMenuItem.Text = "全て" While (sReaderC.Peek() >= 0) AllToolStripMenuItem.DropDownItems.Add(sReaderC.ReadLine()) End While
'userdata.txtから項目を読み込みPlaceToolStripMenuItemインスタンス作成 ' →PersonalToolStripMenuItemインスタンス作成 ' →ContextMenuStrip1作成 Dim strBufferB Dim sReaderB As New System.IO.StreamReader("userdata.txt", System.Text.Encoding.Default) While (sReaderB.Peek() >= 0) Dim PersonalToolStripMenuItem As ToolStripMenuItem = New ToolStripMenuItem() strBufferA = Split(sReaderB.ReadLine(), vbTab) PersonalToolStripMenuItem.Text = strBufferA(0) strBufferB = Split(strBufferA(1), "??")
For a As Integer = 0 To strBufferB.length - 1 Dim PlaceToolStripMenuItem As ToolStripMenuItem = New ToolStripMenuItem() PlaceToolStripMenuItem.Text = strBufferB(a) PersonalToolStripMenuItem.DropDownItems.Add(PlaceToolStripMenuItem) Next PersonalToolStripMenuItem.DropDownItems.Add(AllToolStripMenuItem) ContextMenuStrip1.Items.Add(PersonalToolStripMenuItem) End While
分類:[.NET]
3階層のメニューを作成したくて、下記コードを作成しましたが、上手くいきません。
イメージとしては、
「メニュー」をクリックすると「人名」が羅列されたToolStripMenuがでてきて、
各「人名」をクリックすると、「地域」が羅列されたToolStripMenuがでてくる。
そして、全ての人の「地域」が羅列されたToolStripMenuの一番下の項目は全ての地域が羅列された「全て」という項目がある。「全て」をクリックすると、「全地域」が羅列されたToolStripMenuが出てくる。
ですが、
実行すると、最後の「人名」のToolStripMenuだけに「全て」という項目が入り、他の「人名」のとこには入りません。アドバイスいただけますでしょうか。
<ここからコード>
'all.txtから項目を読み込みAllToolStripMenuItemインスタンスを作成
Dim sReaderC As New System.IO.StreamReader("all.txt", System.Text.Encoding.Default)
Dim AllToolStripMenuItem As ToolStripMenuItem = New ToolStripMenuItem()
AllToolStripMenuItem.Text = "全て"
While (sReaderC.Peek() >= 0)
AllToolStripMenuItem.DropDownItems.Add(sReaderC.ReadLine())
End While
'userdata.txtから項目を読み込みPlaceToolStripMenuItemインスタンス作成
' →PersonalToolStripMenuItemインスタンス作成
' →ContextMenuStrip1作成
Dim strBufferB
Dim sReaderB As New System.IO.StreamReader("userdata.txt", System.Text.Encoding.Default)
While (sReaderB.Peek() >= 0)
Dim PersonalToolStripMenuItem As ToolStripMenuItem = New ToolStripMenuItem()
strBufferA = Split(sReaderB.ReadLine(), vbTab)
PersonalToolStripMenuItem.Text = strBufferA(0)
strBufferB = Split(strBufferA(1), "??")
For a As Integer = 0 To strBufferB.length - 1
Dim PlaceToolStripMenuItem As ToolStripMenuItem = New ToolStripMenuItem()
PlaceToolStripMenuItem.Text = strBufferB(a)
PersonalToolStripMenuItem.DropDownItems.Add(PlaceToolStripMenuItem)
Next
PersonalToolStripMenuItem.DropDownItems.Add(AllToolStripMenuItem)
ContextMenuStrip1.Items.Add(PersonalToolStripMenuItem)
End While