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 :

[C#] Drop dans ListBox [FAQ]


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Par défaut [C#] Drop dans ListBox
    Bonjour,

    Je fait une application dans laquelle j'ai une listBox, et j'aimerai que l'utilisateur puisse "Dropper" des fichiers dedans et que cela m'affiche le nom complet du repertoire dans ma listbox.

    J'ai essayé de mettre AllowDrop à true mais cela ne marche pas, si j'essaye de dropper un fichier, il me le refuse.

    PS : Je fait cette application sur #Develop.

    Help meee!!

    Thanks

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Par défaut
    Bon, s'il vous plait......

    J'ai créé un evenement DragDrop pour ma listbox mais j'ai beau essayé avec les getFullPath et les fileName, j'en tire rien de bon, vous auriez pas une ch'tit solution siouplait

  3. #3
    Membre éprouvé
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    allez, je t'ai bien mâché le travail. Testé avec VS2003 8)

    Permièrement ! N'oublie pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.listview1.AllowDrop = true;
    Ensuite, un handler pour le drag enter. Déclenché quand la souris entre dans le listview pendant l'opération "glisser". Ca va permettre de dire : si les données qui vont être "droppées" sont du type attendu, on définit un effet de copie. Le pointeur souris sera modifié automatiquement quand tu entreras dans la zone.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private void listView1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
        if (e.Data.GetDataPresent("FileDrop"))
        {
            e.Effect = DragDropEffects.Copy;
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }
    Ensuite le handler pour le drop. On vérifie qu'on a bien l'effet de copie (définit pendant le dragenter), et on récupère le nom des fichiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private void listView1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
        if (e.Effect == DragDropEffects.Copy)
        {
            string[] filenames = (string[]) e.Data.GetData("FileDrop");
     
            foreach (string filename in filenames)
            {
                this.listView1.Items.Add(filename);
            }
        }
    }
    Voilà

  4. #4
    Membre éprouvé
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    Remarque:

    au lieux d'utiliser la constante "FileDrop", tu peux utiliser les différents membres statiques de la classe DataFormats

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

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    A mettre dans la FAQ ca

  6. #6
    Membre éprouvé
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    c'est déjà dans ma TODO list

  7. #7
    Membre éprouvé
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    Désolé, je viens de relire le titre du sujet

    J'ai décrit pour ListView

    La bonne nouvelle, c'est que ça marche tout à fait de la même manière avec une ListBox

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Par défaut
    Alors la je dit Monsieur crjo BRAVO, ca marche nickelos

    Merci, mais comment vous faites pour trouver ces trucs la : ou alors j'suis vraiment nul

    Encore une fois merci

  9. #9
    Membre éprouvé
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    Citation Envoyé par Freeman166
    Merci, mais comment vous faites pour trouver ces trucs la : ou alors j'suis vraiment nul
    T'inquiète pas, ça viendra avec l'expérience

    Personnellement, voici ma méthode :
    1. je regarde dans la doc msdn
    2. et si je ne trouve pas, un petit tour sur le net (groupes google, principalement)


    Quand tu te demandes comment faire quelque chose (dotnet ou autre), dis-toi qu'il y a 95 % de chance que quelqu'un ait déjà été confronté au même problème que toi. Le tout est d'essayer de mettre les bons mots clés dans la requête, et de faire une recherche en anglais (on trouve beaucoup plus de chose).

    A plus

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

Discussions similaires

  1. Drag&Drop dans une ListBox et RIA
    Par Mozofeuk dans le forum Silverlight
    Réponses: 0
    Dernier message: 26/04/2013, 12h08
  2. Comment faire du drag and drop dans un Listbox
    Par jca dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 08/02/2013, 20h54
  3. Réponses: 1
    Dernier message: 21/06/2011, 01h18
  4. Drag and drop dans la meme listbox
    Par justgreat dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 25/11/2009, 00h36
  5. Drag and Drop entre listbox
    Par zwoke dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/07/2004, 14h10

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