我有一个问题是通过查找目录中的文件来添加项目。 这个脚本有效。
Private Sub LoadAddItemsToEditMenu(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each dir As String In Directory.GetDirectories(".\MenuItems\Edit")
Dim mainMenuItem As New ToolStripMenuItem(IO.Path.GetFileName(dir))
For Each fn As String In Directory.GetFiles(dir)
Dim subMenuItem As New ToolStripMenuItem(IO.Path.GetFileNameWithoutExtension(fn))
subMenuItem.Tag = fn
EditToolStripMenuItem.DropDownItems.Add(subMenuItem)
AddHandler subMenuItem.Click, AddressOf EditExtendetItem_Click
Next
Next
End Sub
我还需要调整添加到文件图片中的每个项目。
答案 0 :(得分:1)
我不知道你是否要求这一点,下面的代码在每个项目上添加了一个文件图标。我希望这适合你:
Private Sub LoadAddItemsToEditMenu(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each dir As String In Directory.GetDirectories(".\MenuItems\Edit")
Dim mainMenuItem As New ToolStripMenuItem(IO.Path.GetFileName(dir))
For Each fn As String In Directory.GetFiles(dir)
Dim subMenuItem As New ToolStripMenuItem(IO.Path.GetFileNameWithoutExtension(fn))
subMenuItem.Tag = fn
subMenuItem.Image = System.Drawing.Icon.ExtractAssociatedIcon(fn).ToBitmap
EditToolStripMenuItem.DropDownItems.Add(subMenuItem)
AddHandler subMenuItem.Click, AddressOf EditExtendetItem_Click
Next
Next
End Sub
答案 1 :(得分:-1)
嗯,上面的方式应该可以胜任。但是,我建议您在将项目添加到容器之前添加处理程序。它看起来更好,更容易阅读/调试。顺便说一句,我知道VB.net有一个" With"前缀,有点类似于使用...我会使用它,如果我是你,如果你不介意一个好心灵的建议(或你是否重写了代码特别是stackoverflow,以帮助其他人了解你的代码?如果是这样的话? - >没关系。)