Sandro Bizioli


Chi sogna di giorno conosce molte cose che sfuggono a chi sogna soltanto di notte. (E.A.Poe)
Mappa

Drag & Drop di un file in VB.Net

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

Categoria: VB.Net
venerdì, 07 dic 2007 Ore. 13.44
Statistiche
  • Views Home Page: 113.039
  • Views Posts: 574.748
  • Views Gallerie: 124.480
  • n° Posts: 227
  • n° Commenti: 222
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003