【问题标题】:ToolStrip Control, how to programmatically access click eventToolStrip 控件,如何以编程方式访问点击事件
【发布时间】:2012-08-15 18:46:37
【问题描述】:

我有以下代码:

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,但我不确定这是否是我完成此任务的正确方法。有什么想法吗?

谢谢

【问题讨论】:

  • 其他帖子上的技术对我来说看起来不错。

标签: vb.net toolstrip


【解决方案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(of String)。

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多