2017-04-15 60 views
-1

我有一個問題,通過查找目錄中的文件添加項目。 此腳本有效。如何添加MenuStripItems與圖像動態

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 

我還需要調整到添加到文件圖片的每個項目。

回答

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 
+0

工作!非常感謝你。 –

-1

那麼,上面的方式應該做的工作。不過,我建議你在將項目添加到容器之前添加處理程序。它看起來更好,更容易閱讀/調試。順便說一下,我知道VB.net有一個「With」前綴,有點像使用...我會用它,如果我是你,如果你不介意一個好心態的建議(或者你重寫了該代碼特別爲stackoverflow來幫助別人理解你的代碼?如果是這樣 - >沒關係)。

+0

考慮將代碼添加到您的答案中以備份您正在說的內容,或者如果它旨在作爲對其他答案的評論,請考慮等到您有相關代表這樣做。我很感謝你必須付出一些努力才能達到目標,但就現實而言,這並非真正的答案。 – Bugs

+0

@Bugs:對於一個很好的建議,在stackoverflow上向新手們感謝。我會在我的下一個答案中考慮它。我從不介意惹惱某個人,只是儘可能在沒有任何代碼編輯器的情況下盡力提供幫助,但是在那裏它是 - 直接的倒退。好的,下次比...... –