Attraverso il Drag & Drop (trascina e lascia) è possibile, con un semplice movimento del mouse, caricare all'interno di un programma un file specifico.
Ad esempio se trascino un file di testo sulla finestra di NotePad, lo vedrò caricarsi proprio come se lo avessi fatto dal menù file->apri
Implementare questa funzionalità in un nostro applicativo VB.Net, potrebbe non essere proprio così immediato.
Vediamo passo a passo come procedere.
Per comodità supponiamo di voler trascinare un file di un'immagine all'interno di un form e visualizzarla come sfondo dello stesso.
Prima di tutto sarà necessario impostare la proprità AllowDrop del nostro form (o dell'oggetto che deve ricevere il file) a True.
Successivamente bisognerà inserire del codice di gestione negli eventi _DragEnter e _DragDrop.
In _DragEnter inseriremo le istruzioni necessarie a visualizzare, ad esempio, l'icona di copia di un file.
In _DragDrop, dovremo inserire le istruzioni atte ad identificare il file che stiamo trascinando ed a caricarlo all'interno del nostro form.
Private Sub frmScreenNet_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.AllowDrop = True
End Sub
Private Sub mioForm_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
Try
Dim fromFile As String = CType(e.Data.GetData(DataFormats.FileDrop), Array).GetValue(0).ToString
Dim newImage As Image = Image.FromFile(fromFile)
mioForm.BackgroundImage = newImage
Catch ex As Exception
MessageBox.Show("Errore durante Drag & Drop")
End Try
End Sub
Private Sub mioForm_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
e.Effect = DragDropEffects.Copy
End If
End Sub