Unos snippets que hice para usarlos con ListViews:
- Auto scrollea un Listview hasta el último Item.
' Scroll ListView
Private Sub Scroll_ListView(ByVal ListView_Name As ListView)
ListView_Name.EnsureVisible(ListView_Name.Items.Count - 1)
End Sub
- Deshabilita el menú contextual si no hay ningún Item seleccionado.
' [ListView] Auto-Disable ContextMenu
Private Sub ContextMenu_Opening(sender As System.Object, e As System.ComponentModel.CancelEventArgs) _
Handles Listview1_ContextMenu.Opening
If ListView1.SelectedItems.Count = 0 Then e.Cancel = True
End Sub
- Copia el contenido de un Item al portapapeles
#Region " [ListView] Copy Item To Clipboard "
' [ [ListView] Copy Item To Clipboard ]
'
' // By Elektro H@cker
'
' Examples :
'
' Copy_Selected_Items_To_Clipboard(ListView1, 0) ' Copies Item 0
' Copy_Selected_Items_To_Clipboard(ListView1, 0, 2) ' Copies SubItem 2 of Item 0
Private Sub Copy_Item_To_Clipboard(ByVal ListView_Name As ListView, _
ByVal Item As Int32, _
Optional ByVal SubItem As Int64 = 0)
Clipboard.SetText(ListView_Name.Items(Item).SubItems(SubItem).Text)
End Sub
#End Region
- Copia el contenido de los items seleccionados al portapapeles
#Region " [ListView] Copy Selected-Items To Clipboard "
' [ [ListView] Copy Selected-Items To Clipboard ]
'
' // By Elektro H@cker
'
' Examples :
'
' Copy_Selected_Items_To_Clipboard(ListView1) ' Copies all SubItems of selected Items
' Copy_Selected_Items_To_Clipboard(ListView1, 2) ' Copies only SubItem 2 of selected Items
Private Sub Copy_Selected_Items_To_Clipboard(ByVal ListView_Name As ListView, _
Optional ByVal SubItem As Int32 = -0)
Dim text As String = String.Empty
For Each Entry As ListViewItem In ListView_Name.SelectedItems()
If SubItem = -0 Then
For Each Subi As ListViewItem.ListViewSubItem In ListView_Name.Items(Entry.Index).SubItems
text &= " " & Subi.Text
Next
text &= ControlChars.NewLine
Else
text &= ControlChars.NewLine & ListView_Name.Items(Entry.Index).SubItems(SubItem).Text
End If
Next
Clipboard.SetText(text)
End Sub
#End Region