我有以下代码:
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个不同的菜单项,所有有不同的名字。
我看着this post与我相似,但我不确定这是否是我完成此任务的正确方法。有什么想法吗?
由于
答案 0 :(得分:1)
首先删除点击事件代码:
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变量来自何处或与循环有什么关系。我也摆脱了AsEnumerable,因为holdAllDataFromFile已经是一个List(String)。