Powered By Blogger

martes, 3 de diciembre de 2013

Drag & Drop

Arrastrar y soltar (drag and drop) es una expresión informática que se refiere a la acción de mover con el ratón objetos de una ventana a otra o entre partes de una misma ventana. Los objetos arrastrados son habitualmente archivos, pero también pueden ser arrastrados otros tipos de elementos en función del programa.

Un ejemplo es arrastrar y soltar entre ventanas de un gestor de archivos para cambiarlos de carpeta, o archivos de audio en un reproductor para moverlos de su lista de reproducción.

Ahora les presentaremos un ejemplo aplicando el Drag And Drop en visual Studio 2010. 

En esta ocasión se creó un form y se agregaron dos ListView de igual manera se insertaron cuatro Labels en cada ListView podrán ser palabras, frases, números, letras, (en este caso se utilizaron letras y números).
Ahora pasamos a la codificación…

Primero se cambia la propiedad a los elementos en el evento ItemDrag el cual permite darle la propiedad de moverse a cada elemento.

Public Class Form1

    Private Sub ListView_ItemDrag(ByVal sender As Object, ByVal e As  _
System.Windows.Forms.ItemDragEventArgs) Handles ListView1.ItemDrag, _
ListView2.ItemDrag
        Dim Item As ListViewItem
        Dim Items(sender.SelectedItems.Count - 1) As ListViewItem
        Dim i As Integer = 0

        For Each Item In sender.SelectedItems
            Items(i) = Item
            i = i + 1
        Next
        sender.DoDragDrop(New  _
        DataObject("System.Windows.Forms.ListViewItem()", Items), _
        DragDropEffects.Move)
    End Sub



En esta parte lo primero que hay que hacer es cambiar el evento a DragEnter lo cual su principal función es hacer que los ListView acepten la entrada de los nuevos elementos.




Private Sub ListView_DragEnter(ByVal sender As Object, ByVal e As  _
    System.Windows.Forms.DragEventArgs) Handles ListView1.DragEnter, _
    ListView2.DragEnter
        If e.Data.GetDataPresent("System.Windows.Forms.ListViewItem()") Then
            e.Effect = DragDropEffects.Move
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub





A continuación se cambiará al evento DragDrop el cual su función es Arrastrar y Soltar los elementos seleccionados de un ListView a otro.



Private Sub ListView_DragDrop(ByVal sender As Object, ByVal e As  _
    System.Windows.Forms.DragEventArgs) Handles ListView1.DragDrop, _
    ListView2.DragDrop
        Dim Item As ListViewItem
        Dim Items() As ListViewItem = e.Data.GetData("System.Windows.Forms.ListViewItem()")
        Dim i As Integer = 0

        For Each Item In Items
            sender.Items.Add(Items(i).Text)
            If sender Is ListView1 Then
                ListView2.Items.Remove(ListView2.SelectedItems.Item(0))
            Else
                ListView1.Items.Remove(ListView1.SelectedItems.Item(0))
            End If
            i = i + 1
        Next
    End Sub
End Class


Link de descarga del proyecto: 


No hay comentarios:

Publicar un comentario