Results 1 to 3 of 3

Thread: How to do a multiple-row copy in a listview ?

Threaded View

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Oct 2004
    Location
    west
    Posts
    96

    How to do a multiple-row copy in a listview ?

    Hi everybody

    I have a piece of code from a guy in this forum and it works well for my purpose. However, i have some questions to ask in order to make this piece of code works even better. The problem that i am facing is: i can't copy multiple rows of data to any available rows within the listview. When i multi select the rows, right clicked and choose copy, the code can only allow me to copy one row of data to anyone row within the listview although i have multi select the rows of data. I have attached a sceen capture for your reference.The code is as follows:

    Private _listviewContextMenu As ContextMenu
    Private _listviewItemToCutOrCopy As ListViewItem
    Private _listviewItemToCutOrCopyIndex As Integer
    Private _listviewAction As ListviewAction

    Private Sub ListView4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView4.SelectedIndexChanged
    _listviewContextMenu = New ContextMenu()
    _listviewContextMenu.MenuItems.Add("Copy", New EventHandler(AddressOf _listviewContextMenu_Copy))
    _listviewContextMenu.MenuItems.Add("Paste - Overwriting Item", New EventHandler(AddressOf _listviewContextMenu_Paste))
    ListView4.ContextMenu = _listviewContextMenu
    End Sub

    Private Sub _listviewContextMenu_Copy(ByVal sender As Object, ByVal e As System.EventArgs)
    ' clicked somewhere odd:
    If ListView4.SelectedItems.Count = 0 Then Exit Sub
    ' store the index of the selected item.
    ' unlock paste option
    _listviewItemToCutOrCopy = ListView4.SelectedItems(0).Clone
    _listviewItemToCutOrCopyIndex = ListView4.SelectedItems(0).Index
    _listviewAction = ListviewAction.Copying
    End Sub

    Private Sub _listviewContextMenu_Paste(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim i As Integer
    ' clicked somewhere odd:
    If ListView4.SelectedItems.Count = 0 Then Exit Sub
    'drop on self:
    If ListView4.SelectedItems(0).Index = _listviewItemToCutOrCopyIndex Then Exit Sub

    Select Case _listviewAction
    Case ListviewAction.Cutting
    Dim toLvi As ListViewItem = ListView4.SelectedItems(0)
    For i = 1 To toLvi.SubItems.Count - 1
    ' this starts at the first item, not the first subitem ?!
    toLvi.SubItems(i).Text = _listviewItemToCutOrCopy.SubItems(i).Text
    Next
    ListView4.Items.RemoveAt(_listviewItemToCutOrCopyIndex)
    ' may paste again, but don't cut again:
    _listviewAction = ListviewAction.Copying
    Case ListviewAction.Copying
    ' this will overwrite an existing listview item, you might want to insert instead
    Dim toLvi As ListViewItem = ListView4.SelectedItems(0)
    For i = 1 To toLvi.SubItems.Count - 1
    toLvi.SubItems(i).Text = _listviewItemToCutOrCopy.SubItems(i).Text
    Next
    ' may paste again, but don't cut again:
    _listviewAction = ListviewAction.Copying
    End Select
    End Sub
    Attached Images Attached Images  
    Last edited by chioman; Jan 13th, 2006 at 02:34 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width