Vb.net ToolStrip控件,如何以编程方式访问单击事件

Vb.net ToolStrip控件,如何以编程方式访问单击事件,vb.net,toolstrip,Vb.net,Toolstrip,我有以下代码: Private holdAllDataFromFile As New list(Of String) holdAllDataFromFile = ReadWrite.ReadAll(FILE_PATH) 'Uses custom class to read/write. For Each item In holdAllDataFromFile.AsEnumerable menuConnections.DropDownItems.Add(finalData(1).t

我有以下代码:

Private holdAllDataFromFile As New list(Of String)

holdAllDataFromFile =  ReadWrite.ReadAll(FILE_PATH) 'Uses custom class to read/write.

For Each item In holdAllDataFromFile.AsEnumerable 
    menuConnections.DropDownItems.Add(finalData(1).tostring ) 'save to menu
Next
在运行时,我希望能够单击这些菜单项并让它们响应事件,但我不确定如何以编程方式访问它们,因为可能有1、4、10个不同的菜单项,所有菜单项都具有不同的名称

我一直在寻找类似于我的,但我不确定这是否是正确的方式为我实现这一点。有什么想法吗


谢谢

首先删除您的点击事件代码:

Private Sub DataFile_Click(ByVal sender As Object, ByVal e As EventArgs)
  MessageBox.Show("Clicked on " & DirectCast(sender, ToolStripMenuItem).Text)
End Sub
“sender”参数将是您添加的ToolStripMenuItem

然后可以更改循环以添加事件处理程序:

For Each item In holdAllDataFromFile
  menuConnections.DropDownItems.Add(item, _
                                    Nothing, _
                                    AddressOk DataFile_Click)
Next

我将“finalData(1).tostring”改为“item”,因为这是循环变量。目前还不清楚finalData变量来自何处,也不清楚这与循环有什么关系。由于holdAllDataFromFile已经是一个列表(字符串),我还去掉了一个可计算的。请先去掉单击事件代码:

Private Sub DataFile_Click(ByVal sender As Object, ByVal e As EventArgs)
  MessageBox.Show("Clicked on " & DirectCast(sender, ToolStripMenuItem).Text)
End Sub
“sender”参数将是您添加的ToolStripMenuItem

然后可以更改循环以添加事件处理程序:

For Each item In holdAllDataFromFile
  menuConnections.DropDownItems.Add(item, _
                                    Nothing, _
                                    AddressOk DataFile_Click)
Next

我将“finalData(1).tostring”改为“item”,因为这是循环变量。目前还不清楚finalData变量来自何处,也不清楚这与循环有什么关系。我还去掉了一个numerable,因为holdAllDataFromFile已经是一个列表(字符串)。

另一篇文章上的技术在我看来很好。另一篇文章上的技术在我看来很好。