我正在开发一个在系统托盘中运行的小应用程序。当用户右键单击托盘中的图标时,会显示一个 MenuStrip。其中一个按钮会打开一个表单,用户可以在其中向条带添加新按钮。我可以创建按钮,但是当添加按钮时,会为所有其他按钮设置路径。
示例:我创建了一个新的按钮名称“文档”。我将路径设置为“我的文档”文件夹。这样可行。然后我添加另一个名为“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,那么如何为每个在运行时处理自己的单击事件的按钮创建一个新的子?