I am trying to create a context menu dynamically the problem is I can get the menuItem_Click sub to trigger. Here is my code:
Code:Private Sub FindVMX(ByVal strPath As String) Dim oDir As New System.IO.DirectoryInfo(strPath) Dim oFiles() As System.IO.FileInfo Dim i As Integer Dim tmpVar As Integer Dim SR As StreamReader Dim DisplayName As String lstVirtualMachines.Items.Clear() oFiles = oDir.GetFiles("*.vmx", SearchOption.AllDirectories) For i = 0 To oFiles.Length - 1 tmpVar = Strings.InStr(oFiles(i).Name.ToString(), ".") If Strings.Mid(oFiles(i).Name.ToString(), tmpVar) = ".vmx" Then lstVirtualMachines.Items.Add(oFiles(i).DirectoryName & "\" & oFiles(i).Name.ToString) End If Next ReDim VirtualMachines(lstVirtualMachines.Items.Count) For i = 0 To lstVirtualMachines.Items.Count - 1 VirtualMachines(i) = lstVirtualMachines.Items.Item(i) SR = New StreamReader(lstVirtualMachines.Items.Item(i).ToString) Dim Line As String Do Line = SR.ReadLine If Strings.InStr(Line, "displayName", CompareMethod.Text) > 0 Then DisplayName = Strings.Mid(Line, 16) DisplayName = Strings.Mid(DisplayName, 1, DisplayName.Length - 1) lstVirtualMachines.Items.RemoveAt(i) lstVirtualMachines.Items.Insert(i, DisplayName) 'Create Context Menu Item AddContextMenu(DisplayName, 1) End If Loop Until Line Is Nothing SR.Close() Next End Sub Public Sub AddContextMenu(ByVal Text As String, Optional ByVal SubMenu As Integer = 0) Dim mnuItem As New MenuItem mnuItem.Text = Text mnuContextMenu.MenuItems.Add(mnuItem) If SubMenu = 1 Then Dim mnuItemStart As New MenuItem() Dim mnuItemStop As New MenuItem() mnuItemStart.Text = "Start" mnuItemStop.Text = "Stop" mnuItem.MenuItems.Add(mnuItemStart) mnuItem.MenuItems.Add(mnuItemStop) End If Debug.WriteLine(mnuContextMenu.MenuItems.Count) AddHandler mnuItem.Click, AddressOf Me.menuItem_Click NotifyIcon1.ContextMenu = mnuContextMenu End Sub Private Sub menuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) MsgBox(sender.ToString) End Sub




Reply With Quote