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

C# Discussion :

Implementer drag and drop dans listview [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Points : 64
    Points
    64
    Par défaut Implementer drag and drop dans listview
    Bonjour,

    je cherche a implémenter le drag and drop de fichier (pdf, word, jpg...) et de dossier depuis et vers un mini explorateur de fichier integré a mon appli avec l'explorer de windows.

    Le soucis est que je n'arriva pas.

    Mon mini explorer est composé d'une Listview (LstFiles). J'ai mis ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #region Méthodes Drag and Drop pour LstFiles
     
            void lstFiles_DragEnter(object sender, DragEventArgs e)
            {                       
               e.Effect = DragDropEffects.Copy;
            }
     
            void lstFiles_DragDrop(object sender, DragEventArgs e)
            {
                lstFiles.Items.Add(e.Data.ToString());
            }
     
            #endregion
    au niveau de mon Form load, j'ai ajouté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     // allow drag and drop for LstFiles
                lstFiles.AllowDrop = true;
                lstFiles.DragDrop += new DragEventHandler(lstFiles_DragDrop);
                lstFiles.DragEnter += new DragEventHandler(lstFiles_DragEnter);
    Quand j'essaye de drag and drop un fichier/dossier depuis le bureau ou l'explorateur windows vers ma Listview cela "fonctionne" mais a la place du fichier apparait "System.windows.Form.dataobject", mais nand si je clique dessus.

    De plus le drag and drop inverse (mini explorer vers le bureau par exemple), ne fonctionne pas du tout.

    une idée du soucis?

    merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par waspy59 Voir le message
    Quand j'essaye de drag and drop un fichier/dossier depuis le bureau ou l'explorateur windows vers ma Listview cela "fonctionne" mais a la place du fichier apparait "System.windows.Form.dataobject"
    Normal... tu as juste appelé ToString dessus, et ToString n'est pas redéfini pour cette classe donc ça renvoie juste le nom du type.

    Il faut utiliser la méthode GetData :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            void lstFiles_DragDrop(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop))
                {
                    string fileName = e.Data.GetData(DataFormats.FileDrop);
                    lstFiles.Items.Add(fileName);
                }
            }
    Citation Envoyé par waspy59 Voir le message
    mais nand si je clique dessus.
    Euh, ça veut dire quoi ?

    Citation Envoyé par waspy59 Voir le message
    De plus le drag and drop inverse (mini explorer vers le bureau par exemple), ne fonctionne pas du tout.
    Bah tu as écrit quoi comme code pour le faire ? Le code que tu as posté ici ne gère que le drop depuis l'explorateur Windows...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Euh, ça veut dire quoi ?
    Je voulais écrire Nada.... en gros nada quand je clique dessus = rien ne se passe

    Sinon j'ai testé ton code mais j'ai une erreur sur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    e.Data.GetData(DataFormats.FileDrop);
    Erreur 1 Impossible de convertir implicitement le type 'object' en 'string'. Une conversion explicite existe (un cast est-il manquant*?)
    C'est dû à quoi?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par waspy59 Voir le message
    Je voulais écrire Nada.... en gros nada quand je clique dessus = rien ne se passe
    OK, mais tu ne dis pas ce qu'il devrait se passer...


    Citation Envoyé par waspy59 Voir le message
    C'est dû à quoi?
    Bah comme l'indique le message d'erreur... GetData est déclaré comme renvoyant un object, pour affecter le résultat à une string il faut faire un cast :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string fileName = (string)e.Data.GetData(DataFormats.FileDrop);

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Points : 64
    Points
    64
    Par défaut
    Merci c'est resolu

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

Discussions similaires

  1. Drag and drop dans une seul listview
    Par jacko842 dans le forum VB.NET
    Réponses: 0
    Dernier message: 21/04/2010, 13h42
  2. Drag and drop dans un input
    Par kriekbellevue dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/12/2006, 20h55
  3. [VB.net] Drag and drop dans une Treeview
    Par gégécap dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/10/2006, 10h05
  4. [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
  5. Drag and drop dans un TTreeView
    Par BigBenQ dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/10/2005, 14h57

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