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