2013-05-19 8 views
0

У меня динамически заполняется список в приложении Windows Forms. Теперь я хочу добавить контекстное меню, чтобы при выборе элемента контекстное меню появлялось при щелчке правой кнопкой мыши по выбранному элементу и не появлялось при щелчке правой кнопкой мыши на других пустых областях формы. В настоящее время я использую этот код.контекстное меню в vb.net

lv.Columns.Add("Button Text", 300, HorizontalAlignment.Left) 
lv.Columns.Add("PID", 50, HorizontalAlignment.Left) 
lv.Columns.Add("Process Path", 300, HorizontalAlignment.Left) 
lv.Columns.Add("Hide Icon Permanently", 150, HorizontalAlignment.Left) 

Dim things As List(Of TrayButton) = TrayHelper.Tray.GetTrayButtons() 
For Each b As TrayButton In things 
    If b.Icon IsNot Nothing Then 
     il.Images.Add(b.TrayIndex.ToString, b.Icon) 
    Else 
     ' When we can't find an icon, the listview will display this form's one. 
     ' You could try to grab the icon from the process path I suppose. 
     il.Images.Add(b.TrayIndex.ToString, Me.Icon) 
    End If 
    Dim lvi As New ListViewItem(b.Text) 
    lvi.SubItems.Add(b.ProcessIdentifier.ToString) 
    lvi.SubItems.Add(b.ProcessPath) 
    lvi.ImageKey = b.TrayIndex.ToString 
    lv.Items.Add(lvi) 

Next 

Dim mnuContextMenu As New ContextMenu() 
Me.ContextMenu = mnuContextMenu 
Dim mnuItemHide As New MenuItem() 
mnuItemHide.Text = "&Hide" 

mnuContextMenu.MenuItems.Add(mnuItemHide) 

ответ

0

Назначают ContextMenu к ListView тогда ...

Изменение:

Me.ContextMenu = mnuContextMenu 

To:

lv.ContextMenu = mnuContextMenu 

Если это не очевидно, Me был изменен lv.

+0

спасибо за ответ d, но это не сработало для меня ... я все еще получаю контекстное меню в пустой области ... – nyxem1

+0

У вас есть FullRowSelect() включен или выключен? –

+0

Во всяком случае вы можете использовать [ListView.Hittest()] (http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.hittest.aspx), чтобы определить, где произошел щелчок , С помощью этой информации вы можете решить, что делать с ContextMenu. –

Смежные вопросы