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 :

Listbox + draganddrop


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 15
    Points : 16
    Points
    16
    Par défaut Listbox + draganddrop
    Bonjour à tous,

    je suis à la recherche d'un exemple de drag and drop sur un controle listbox.

    Mon but est de pouvoir déplacer un ou plusieurs item dans mon listbox par draganddrop.

    Exemple : à l'aide de la souris déplacer l'item en 10eme position vers la position une.

    Voila j'espere avoir été clair dans l'énoncé de mon problème, et je remercie d'avance toute l'aide que vous pourrez m'apporter.

  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 749
    Points
    39 749
    Par défaut
    Mets la propriété AllowDrop de ta ListBox à true, et mets le code suivant pour les évènements MouseDown, DragEnter et DragDrop :

    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
    25
    26
    27
    28
    29
    30
    31
    32
            private void listBox1_MouseDown(object sender, MouseEventArgs e)
            {
                int index = listBox1.IndexFromPoint(e.Location);
                if (index >= 0)
                {
                    listBox1.DoDragDrop(index, DragDropEffects.Move);
                }
            }
     
            private void listBox1_DragEnter(object sender, DragEventArgs e)
            {
                e.Effect = DragDropEffects.Move;
            }
     
            private void listBox1_DragDrop(object sender, DragEventArgs e)
            {
                Point p = listBox1.PointToClient(new Point(e.X, e.Y));
                int index = listBox1.IndexFromPoint(p);
                if (index >= 0)
                {
                    if (e.Data.GetDataPresent(typeof(int)))
                    {
                        int indexFrom = (int)e.Data.GetData(typeof(int));
                        if (index != indexFrom)
                        {
                            object item = listBox1.Items[indexFrom];
                            listBox1.Items.RemoveAt(indexFrom);
                            listBox1.Items.Insert(index, item);
                        }
                    }
                }
            }
    Attention, ce code ne marche pas si tu utilises le data binding : dans ce cas il faut travailler sur la source de données et non pas sur les items de la ListBox.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta réponse, grace à cela je me suis sorti de la pannade dans laquelle je me trouvais

  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 749
    Points
    39 749
    Par défaut
    n'oublie pas de marque le sujet comme alors
    (bouton en bas de la page)

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

Discussions similaires

  1. DrawItem d'un listbox...
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2007, 15h50
  2. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53
  3. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32
  4. [Canvas] Listbox, couleur et multiselect
    Par rbag dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/09/2002, 13h02
  5. Copier le texte d'un ListBox dans le clipboard.
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/08/2002, 08h20

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