Eseguire DragAndDrop da una listbox all'explorer di windows

sabato 28 febbraio 2009 - 11.50

nio91 Profilo | Newbie

Salve, nel mio form ho una list box contenente le paths dei files da trascinare...ovviamente nella list box c'è soltanto una stringa di testo e non il file vero e proprio, ora avrei bisogno di eseguire il metodo DoDragDrop e trasportare il file selezionato dalla lista verso l'esterno dell'applicazione. Il problema sorge perchè non riesco a creare l'object del file da inserire nel metodo DoDragDrop, ma riesco a trascinare solo la path del file selezionato come stringa.
Ho provato in questo modo ma non riesco a trascinare nulla :

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Per quanto riguarda il procedimento inverso, e cioè da windows explorer verso la list box, non ho nessun problema, in quanto ho solo bisogno di copiarmi la path del file trascinato ed inserirlo nella lista...

Utilizzo visual basic 2008.

Vi ringrazio in anticipo!
Giovanni

aiedail92 Profilo | Expert

Ciao

È sbagliato il formato dei dati: per creare un DataObject con FileDrop, il file non deve essere una stringa singola, ma un array di stringhe (questo perchè deve essere possibile trascinare anche file multipli)

Comunque se non vuoi preoccuparti di creare te il formato, la cosa migliore da fare è questa:

'Ottieni l'indirizzo completo del file Dim file As String = pathBox.Text + "\" + List.Text 'Crei il DataObject Dim dObj As New DataObject() 'Crei la collection specializzata per le stringhe Dim sColl As New Collections.Specialized.StringCollection() 'Aggiungi il nome del file alla collection sColl.Add(file) 'Aggiungi i dati dei file al DataObject dObj.SetFileDropList(sColl) 'Esegui il DragDrop List.DoDragDrop(dObj, DragDropEffects.Copy)

Luca

nio91 Profilo | Newbie

Benissimo! Funziona :)

Grazie mille!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5