システムトレイで実行される小さなアプリケーションに取り組んでいます。ユーザーがトレイのアイコンを右クリックすると表示される MenuStrip があります。ボタンの 1 つは、ユーザーが新しいボタンをストリップに追加できるフォームを開きます。ボタンを作成できますが、ボタンが追加されると、他のすべてのボタンのパスが設定されます。
例: 新しいボタン名「ドキュメント」を作成します。My Documents フォルダーへのパスを設定します。それはうまくいきます。次に、「C」という名前の別のボタンを追加します。パスを「C:\」に設定しました。パスを設定して C:\ を開きますが、[ドキュメント] ボタンも "C:\" に設定します。
フォームには、名前用とパス用の 2 つのテキスト ボックスがあります。名前はメニューに表示されるもので、パスはユーザーがメニューのボタンをクリックしたときに開くものです。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim newItem As New ToolStripMenuItem
newItem.Text = NameBox.Text
AddHandler newItem.Click, AddressOf buttonClick
ContextMenuStrip1.Items.Add(newItem)
End Sub
Private Sub buttonClick(ByVal sender As System.Object, ByVal e As EventArgs)
Process.Start("explorer.exe", PathBox.Text)
End Sub
何が起こっているかは理解していますが、それを修正する方法がわかりません。すべてのボタン クリック イベントを buttonClick に設定すると、実行時に独自のクリック イベントを処理するボタンごとに新しいサブを作成するにはどうすればよいでしょうか。