Ejemplo en visual basic.Net que hace un Drag Drop de archivos desde Windows hacia un formulario , y las rutas se agregan en un control ListBox, usando la propiedad AllowDrop para habilitar el arrastre , y los eventos DragEnter y DragDrop del control de lista para detectar el drag drop e insertar los datos
Controles
- Un ListBox : lstFile
- Un PictureBox : Picturebox1
Option Explicit On
Option Strict On
' para usar la clase Path
Imports System.IO
Public Class Form1
'evento DragDrop del ListBox
Private Sub ListBox1_DragDrop(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) Handles lstFile.DragDrop
Try
' Obtener un array de Strings con los archivos que se están colocando
Dim Rutas As String() = DirectCast( e.Data.GetData(DataFormats.FileDrop),String())
' Recorrer el array
For Each ruta As String In Rutas
' obtiene la extensión del path
Dim extension As String = Path.GetExtension(ruta).ToLower
' si no es un direcotorio lo agrega a la lista
If extension.Length > 0 Then
' Si es de esta extensión de archivo lo agrega
If extension = ".png" Or extension = ".jpg" Or extension = ".bmp" Or _
extension = ".ico" Or extension = ".wmf" Or extension = ".jpeg" Or _
extension = ".gif" Then
' Verifica si ya no se agregó este elemento
If lstFile.Items.Contains(ruta) = False Then
lstFile.Items.Add(ruta)
End If
End If
End If
Next
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
'evento DragEnter del ListBox
Private Sub ListBox1_DragEnter(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) _
Handles lstFile.DragEnter
e.Effect = DragDropEffects.Copy
End Sub
' Cargar la imagen en el Picturebox
Private Sub lstDir_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles lstFile.SelectedIndexChanged
Try
' Leer el archivo con Image.FromFile
PictureBox1.Image = Image.FromFile(lstFile.Text)
' error
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Poner AllowDrop en true para habilitar el arrastre de datos hacia el control
lstFile.AllowDrop = True
End Sub
End Class
Option Strict On
' para usar la clase Path
Imports System.IO
Public Class Form1
'evento DragDrop del ListBox
Private Sub ListBox1_DragDrop(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) Handles lstFile.DragDrop
Try
' Obtener un array de Strings con los archivos que se están colocando
Dim Rutas As String() = DirectCast( e.Data.GetData(DataFormats.FileDrop),String())
' Recorrer el array
For Each ruta As String In Rutas
' obtiene la extensión del path
Dim extension As String = Path.GetExtension(ruta).ToLower
' si no es un direcotorio lo agrega a la lista
If extension.Length > 0 Then
' Si es de esta extensión de archivo lo agrega
If extension = ".png" Or extension = ".jpg" Or extension = ".bmp" Or _
extension = ".ico" Or extension = ".wmf" Or extension = ".jpeg" Or _
extension = ".gif" Then
' Verifica si ya no se agregó este elemento
If lstFile.Items.Contains(ruta) = False Then
lstFile.Items.Add(ruta)
End If
End If
End If
Next
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
'evento DragEnter del ListBox
Private Sub ListBox1_DragEnter(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) _
Handles lstFile.DragEnter
e.Effect = DragDropEffects.Copy
End Sub
' Cargar la imagen en el Picturebox
Private Sub lstDir_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles lstFile.SelectedIndexChanged
Try
' Leer el archivo con Image.FromFile
PictureBox1.Image = Image.FromFile(lstFile.Text)
' error
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Poner AllowDrop en true para habilitar el arrastre de datos hacia el control
lstFile.AllowDrop = True
End Sub
End Class
No hay comentarios:
Publicar un comentario