Drag/Drop: Item d'une ListBox vers Explorateur Windows

Utilisateur anonyme - 7 mars 2012 à 19:31
DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013 - 10 mars 2012 à 22:05
Bonsoir tout le monde,

J'aurais aimé savoir comment faire un Drag'n'Drop d'un Item d'une ListBox vers l'explorateur Windows.

J'ai cherché mais sans succès; La seule chose que j'ai trouvé, c'est un petit snippet en .net mais je n'arrive pas a en tirer grand chose.

Voilà, merci de m'aider

Bonne soirée

25 réponses

DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013
10 mars 2012 à 00:22
C'est pas moi qui répond à côté de la plaque avec mes DirListBox.

CQFD.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 mars 2012 à 07:06
Je pense que tu peux essayer d'aller faire joujou plus loin.
Ici, on reste sérieux et on sait de quoi l'on parle.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Utilisateur anonyme
10 mars 2012 à 13:30
Re-salut,

ucfoutu, je comprend que l'utilisation des Dirlistbox est préférable pour faire ce drag'n'drop (Car c'est un contrôle), mais justement le but de ma question initiale était de faire un semblant de drag'n'drop (Style WinRar; Pourtant c'est bien un drag'n'drop, non ?) mais sans passer par la dirlistbox (Pour glisser directement le fichier dans l'explorateur (Oui même si ce n'est pas un objet, donc trouver une technique pour faire un semblant de cliquer-glisser) et donc ne pas s'encombrer avec une DirListBox).

Enfin bref, tout ça est possible en VB.NET
(Snippet permettant de copier un fichier, dont le chemin d'accès est indiqué dans un item d'une ListView, en faisant un cliquer-glisser vers un répertoire ouvert dans l'explorateur Windows)

Sauf que j'ai un peu de mal à passer ça en VB6

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
ListView1.AllowDrop = True
ListView1.View = View.Details
ListView1.Columns.Add("Column1", ListView1.Width - 4,
HorizontalAlignment.Left)
ListView1.Items.Add("C:\test.txt")
End Sub

Private Sub ListView1_DragEnter(ByVal sender As Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles ListView1.DragEnter
If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
e.Effect = DragDropEffects.All
Else
e.Effect = DragDropEffects.None
End If
End Sub

Private Sub ListView1_DragDrop(ByVal sender As Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles ListView1.DragDrop
Dim s() As String = e.Data.GetData("FileDrop", False)
Dim i As Integer
For i = 0 To s.Length - 1
ListView1.Items.Add(s(i))
Next i
End Sub

Private Sub ListView1_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDown
If ListView1.SelectedItems.Count > 0 Then
Dim strFilesPath() As String
ReDim strFilesPath(ListView1.SelectedItems.Count - 1)
For i As Integer = 0 To ListView1.SelectedItems.Count - 1
strFilesPath(i) = ListView1.SelectedItems(i).Text
Next
Dim dt As DataObject = New DataObject(DataFormats.FileDrop,
strFilesPath)
ListView1.DoDragDrop(dt, DragDropEffects.Copy)
End If
End Sub



(Source)

(Tout ça donc pour montrer que c'est bien possible, et pour illustrer ma question...dans un autre langage)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 mars 2012 à 14:11
Je ne peux tester ton code VB.Net
Pour glisser directement le fichier dans l'explorateur (Oui même si ce n'est pas un objet, donc trouver une technique pour faire un semblant de cliquer-glisser) et donc ne pas s'encombrer avec une DirListBox)

Je ne peux que te répéter ce que je t'ai déjà dit : On ne peut faire un drag and drop vers l' "explorateur"
On ne peut le faire que vers un dossier.
Et je ne vois aucune autre manière, sous VB6, de choisir un dossier de destination que l'utilisation d'une DirListbox ou d'un autre contrôle de ton choix, mais forcément un contrôle.
Je ne peux par ailleurs (ni n'en ai envie) dépenser tout mon temps à te répondre toujours et forcément la même chose).
PS : observe au passage : ta même question est restée sans la moindre réponse (et pour cause) "ailleurs", non ?
Mais si tu penses autrement : fais-donc. Et fais-toi aider par DxShadow, qui a l'air de s'y connaître.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DxShadow Messages postés 69 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 12 mai 2013
10 mars 2012 à 22:05
C'est tout c'que t'as à dire?

Évidemment que je m'y connais. J'ai beau parcourir des forums, et je n'ai jamais vu quelqu'un qui s'immiscait dans un topique d'une manière aussi têtue. On parle bien de drag'n'drop, où on a parlé de DirListBox ?!? Je suis peut-être jeune, mais au moins, j'ai toute ma tête... Enfin, c'est sans issue, ucfoutu, vu que tu as l'air de fanatiser sur le DirListBox.

Bonne soirée.

Matthias
0
Rejoignez-nous