2017-04-15 16 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:Thanxは、stackoverflowの初心者への良いアドバイスのためにたくさんあります。私は次の答えでそれを検討します。私は誰かに迷惑をかけることはありません。私の電話でコードエディタを使わずにできる限り助けようとしましたが、そこには直接ダウンボートがあります。 [OK]を、次の時間よりも... –

関連する問題