IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Drap and Drop depuis l'extérieur


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 25
    Points
    25
    Par défaut [VB.NET] Drap and Drop depuis l'extérieur
    Hello !

    J'ai une application avec un TreeView.
    J'aimerai pouvoir sélectionné un fichier depuis l'explorateur Windows et le dropper dans ce treeview (en y récupérant son emplacement d'origine et qq propriétés).
    A ce jour, quand je fais cette manipulation, le droppage m'est interdit...

    Quelqu'un pour m aider ?

  2. #2
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Un truc tout bête : allowdrop est bien à true dans ton code ?

    Sinon un peu de code pourrait nous aider

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    oui le allow drop est déjà à true...
    en fait je n ai po encore fait le code pour se drag and drop...
    j'en fait déjà entre les noeuds du treeview...mais po avec un élément extérieur
    mon code de drag and drop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        Private Sub TreeView1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragEnter
            If TreeView1.SelectedNode.Tag <> "Racine" And Not TabNoeud(TreeView1.SelectedNode.Tag).noeudDynamique Then
                Select Case e.KeyState
                    Case 1
                        e.Effect = DragDropEffects.Move
                        copiecoupe = "coupe"
                    Case 5
                        e.Effect = DragDropEffects.Copy
                        copiecoupe = "copie"
                End Select
     
            End If
        End Sub
     
        Private Sub TreeView1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragDrop
            If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
                DragEvent = e
                AfficheMenuDrop()
            End If
        End Sub
     
        Public Sub TreeView1_ItemDrag(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles TreeView1.ItemDrag
            DoDragDrop(e.Item, DragDropEffects.All)
        End Sub
    à part le allowdrop, n'y a t il po d autre propriétés qui pourrait bloqué ?
    par exemple son niveau de protection ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    c bon j ai trouvé !
    je le fini et je mets mon code pour ceux que ca interesse

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    arf encore un problème :
    dans mon Treeview1_dragover,
    mon dragEventsArg, e, j'aimerais récupéré les infos qu'il contient...
    sachant que c'est un fichier que je glisse, j'aimerais récupéré le fullname...etc

    voila ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub TreeView1_DragOver(ByVal sender As Object, ByVal e As DragEventArgs) Handles TreeView1.DragOver
            Dim fichier As System.IO.FileInfo
            fichier = CType(e.Data, System.IO.FileInfo)
            MessageBox.Show(fichier.FullName)
    End Sub
    Mais ca ne fait rien ...
    c pe etre pas FileInfo comme type, mais koi d'autre ???

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    on progresse :
    e.Data.GetDataPresent(DataFormats.FileDrop)=true
    mais maintenant comment récupéré les infos ?

  7. #7
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    avec la méthode

    Par contre j'ai utilisé qu'avec des types simples, là à mon avis va falloir caster

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    fini :
    voila ce que ca donne en simplifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Private Sub TreeView1_DragOver(ByVal sender As Object, ByVal e As DragEventArgs) Handles TreeView1.DragOver
            If Not (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
                e.Effect = DragDropEffects.None
            Else
                e.Effect = DragDropEffects.Link
            End If
        End Sub
        Private Sub TreeView1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragDrop
            Dim files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
            Dim fichier As New System.IO.FileInfo(files(0))
            TreeView1.Nodes.Add(fichier.Name)
        End Sub

  9. #9
    Membre du Club Avatar de aeled
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 84
    Points : 51
    Points
    51
    Par défaut
    Cool, ce code ca va m'aider.

    En revanche, est-ce que quelqu'un saurait comment récupérer le noeud dans lequel le dag&drop est fait.

    Si je glisse mon fichier toto dans mon repertoire titi il faut que j'ajoute le noeud toto avec titi comme "racine".

    J'ai bien pensé à selectedNode que l'on trouve dans le sender mais si c'est un autre noeud qui est selectionné et que l'on glisse un fichier dans un noeud selectionné il me renvoie la mauvaise valeur (et c'est logique !)

    Une idée pour moi ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. [VB.NET]Drag and Drop dans une Listview
    Par gégécap dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/08/2006, 18h41
  3. [VB.NET] Drag and Drop d'un fichier sur un objet Panel
    Par Mü dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/11/2005, 12h30
  4. [Débutant(e)][VB.NET] Drag and drop entre 2 treeviews
    Par - Manuella Leray - dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/10/2005, 15h54
  5. Faire un drag and drop depuis IE vers un TListView
    Par ALEX77 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 11/11/2004, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo