DOBON.NET DOBON.NETプログラミング掲示板過去ログ

NotifyIconのContextMenu

  • 題名: NotifyIconのContextMenu
  • 著者: tab
  • 日時: 2003/11/07 1:48:51
  • ID: 1346
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[Windows XP .NET FrameWork1.0]
分類:[.NET]

いつもお世話になっております。
早速ですがご教授をお願いしたいことがあります。
Form1にComboBox1とButton1とContextMenu1とNotifyIcon1を配置します。
ContextMenu1にはMenuItem1があります。(Text="Menu1")
これで、Button1を押す度にComboBox1に乱数を追加し、NotifyIcon1の
MenuItem1.MenuItemsにComboBox1のItemを表示させたいのです。
そこで以下のように書いてみました。

Private Sub CreateMenu()

Dim i As Integer = ComboBox1.Items.Count - 1
Dim j As Integer
    'ComboBox1のItemの数だけMenuItemをつくる
Dim mymenu(i) As System.Windows.Forms.MenuItem

MenuItem1.MenuItems.Clear 'いったんすべて削除

For j = 0 To i
mymenu(j) = New System.Windows.Forms.MenuItem()
mymenu(j).Text = ComboBox1.Items(j)
AddHandler mymenu(j).Click, AddressOf Me.mymenu_Click
Next

Me.MenuItem1.MenuItems.AddRange(mymenu)

End Sub

Private Sub mymenu_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
MsgBox(sender.text)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Randomize()
ComboBox1.Items.Add(Int(Rnd() * 10))
Call CreateMenu()
End Sub

すると、一回目のButton1_ClickではちゃんとMenuItem1.MenuItemsに項目が
追加されますが、二回目以降は追加されているかもしれませんが表示されません。
なぜだかまったく検討がつきませんが、よろしければどこがいけないのか
ご教授お願いいたします。
自己レスですが、NotifyIcon1ではなくForm1にContextMenu1を
関連付ければ、Form1のContextMenuのMenuItemはちゃんと動作
します。しかもForm1でContextMenuを表示させた後はNotifyIcon1でも
ちゃんと動作します。
いったいどういうわけでしょうか?

(携帯)

DOBON.NET | プログラミング道 | プログラミング掲示板