Imports Infragistics.Win
Imports Infragistics.Win.UltraWinListView
Private Sub ultraListView1_MouseDown(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles ultraListView1.MouseDown
Dim listView As UltraListView = CType(sender, UltraListView)
' Remove all context menu items
Me.contextMenu1.MenuItems.Clear()
' Add context menu items for group, item, sub-item
Dim groupMenuItem As IGMenuItem = New IGMenuItem("Group", New EventHandler(AddressOf OnMenuItemClick))
Dim itemMenuItem As IGMenuItem = New IGMenuItem("Item", New EventHandler(AddressOf OnMenuItemClick))
Dim subItemMenuItem As IGMenuItem = New IGMenuItem("SubItem", New EventHandler(AddressOf OnMenuItemClick))
Me.contextMenu1.MenuItems.Add(groupMenuItem)
Me.contextMenu1.MenuItems.Add(itemMenuItem)
Me.contextMenu1.MenuItems.Add(subItemMenuItem)
' Hit test for the group, item, or sub-item at the cursor position
Dim groupAtPoint As UltraListViewGroup = listView.GroupFromPoint(e.X, e.Y)
Dim itemAtPoint As UltraListViewItem = listView.ItemFromPoint(e.X, e.Y, True)
Dim subItemAtPoint As UltraListViewSubItem = listView.SubItemFromPoint(e.X, e.Y)
' Assign a reference to the group, item or sub-item to the menu item's Tag
groupMenuItem.Tag = groupAtPoint
itemMenuItem.Tag = itemAtPoint
subItemMenuItem.Tag = subItemAtPoint
' Enable the appropriate context menu items
groupMenuItem.Enabled = Not groupAtPoint Is Nothing
itemMenuItem.Enabled = Not itemAtPoint Is Nothing
subItemMenuItem.Enabled = Not subItemAtPoint Is Nothing
If listView.ContextMenu Is Nothing Then listView.ContextMenu = Me.contextMenu1
End Sub
Private Sub OnMenuItemClick(ByVal sender As Object, ByVal e As EventArgs)
Dim menuItem As IGMenuItem = CType(sender, IGMenuItem)
If menuItem.Tag.GetType() Is GetType(UltraListViewItem) Then
' Activate and select the UltraListViewItem
Dim item As UltraListViewItem = CType(menuItem.Tag, UltraListViewItem)
item.Activate()
item.Control.PerformAction(UltraListViewAction.SelectItem, False, False)
End If
End Sub