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 :

drag&drop dans Listview


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut drag&drop dans Listview
    Bonjour, Dans mon programme (un inventaire d'objets dans un jeux)Je fais du Drag&Drop entre 3 listview. Cela marche très bien mais je voudrais ajouter la fonction suivante: mes items contiennent des noms d'objet et leurs subitem(0) contient la Quantité de chaque objet Quand le text de l'item que je "drag" est identique au texte de l'item sur lequel je le "Drop" au lieu de déplacer l'item dans la liste je voudrais qu'il rajoute la quatité de l'objet de départ à la quantité d'objet de destination: Voici mon 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub ListViewDragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Lstv_Inv1.DragDrop, Lstv_Inv2.DragDrop, Lstv_Inv3.DragDrop
            Dim lvItem As ListViewItem
            Dim destItem As ListViewItem
            Dim destLv As ListView = CType(sender, ListView)
            Dim StrtLv As ListView = CType(sender, ListView)
            Dim clX As Integer = destLv.PointToClient(New Point(e.X, e.Y)).X
            Dim clY As Integer = destLv.PointToClient(New Point(e.X, e.Y)).Y
     
     
            If e.Data.GetDataPresent("System.Windows.Forms.ListViewItem", False) Then
                'dragging a listview item
                lvItem = CType(e.Data.GetData("System.Windows.Forms.ListViewItem"), ListViewItem)
                destItem = CType(sender, ListView).GetItemAt(clX, clY)
     
                If destItem Is Nothing Then
                    destLv.Items.Insert(destLv.Items.Count, lvItem.Clone)
     
                ElseIf destItem.Text = lvItem.Text Then
     
                    ' C'est ICI que je voudrais réaliser la fonction demandée
     
                Else
                    destLv.Items.Insert(destItem.Index, lvItem.Clone)
                End If
     
                lvItem.Remove()
            End If
        End Sub
    Merci d'avance pour votre aide

    Gilles

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Points : 192
    Points
    192
    Par défaut
    Bonjour,
    Tu as essayé un truc du genre :
    Citation Envoyé par tgilles Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            
              If destItem Is Nothing Then
                    destLv.Items.Insert(destLv.Items.Count, lvItem.Clone)
    
                ElseIf destItem.Text = lvItem.Text Then
                    destItem.SubItems(0).Text = cInt(lvItem.SubItems(0).Text) + cInt(destItem.SubItems(0).Text)
               Else
                    destLv.Items.Insert(destItem.Index, lvItem.Clone)
                End If
    
                lvItem.Remove()
            End If
        End Sub
    "La Bretagne, ça vous gagne !!!"

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Ca ne marche pas...
    Bonjour Dudule,

    Merci pour ta réponse. Au fait j'avais essayer cette solution mais ça n'a pas l'air de marcher. quand j'inspecte les variables à la volée (en mettant un breakpoint) on dirait qu'il n'arrive pas à lire la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    destItem.SubItems(0).Text
    il me marque "Item = Overload resolution failed because no accessible 'Item' accepts this number of arguments." et il sort de la Sub sans rien faire...

    as-tu une idée du pourquoi ? ou une autre façon d'obtenir le même résultat ?

    Encore mille merci

    Gilles

    P.S j'utilise VB 2008 express édition


    Citation Envoyé par dudule Voir le message
    Bonjour,
    Tu as essayé un truc du genre :

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Points : 192
    Points
    192
    Par défaut
    Bonjour,
    A priori c'est parce que c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    destItem.SelectedItems(0).SubItems(0).Text
    quelque chose du genre
    "La Bretagne, ça vous gagne !!!"

Discussions similaires

  1. [Débutant] Implementer drag and drop dans listview
    Par waspy59 dans le forum C#
    Réponses: 4
    Dernier message: 28/05/2012, 19h14
  2. Drag and drop dans une seul listview
    Par jacko842 dans le forum VB.NET
    Réponses: 0
    Dernier message: 21/04/2010, 13h42
  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