Drag and Drop dans une Listview

gegecap Messages postés 4 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 22 août 2006 - 21 août 2006 à 21:13
gegecap Messages postés 4 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 22 août 2006 - 22 août 2006 à 16:19
Bonjour,


Quelqu'un a-t-il déja déplacé un item dans une Listview?
Comment a-t-il fait?
J'ai réussi à le faire dans une Listbox mais je n'arrive pas à le faire dans une Listview.
Quelles sont les différences?
Je suis en VB2005 Framework 2.0


Merci d'avance à ceux qui répondront.



Gégécap

3 réponses

troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
21 août 2006 à 23:50
Bonjour,


Si l'evenement existe ça doit etre possible a faire et de la meme facon que n'importe qu'elle autre, as tu fait un debut de code ou pas ? si oui pourrais tu le donner histoire de voir ce qui a ete fait ...


Cordialement



http://www.troxsa.info/

Le site qui ne parle qu'un seul langage, visual basic 2005
0
gegecap Messages postés 4 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 22 août 2006
22 août 2006 à 10:46
Merci TroXsa de t'interesser à mon problème.

Un petit exemple des différences entre Listbox et Listview:
Dans une listbox, dans l'événement MouseDown, on peut obtenir l'index de l'élément ou se trouve la souris par la méthode IndexFromPoint.
Ex:
Dim Ind As Integer
Ind = ListBox.IndexFromPoint(e.X,e.Y)

Dans une listview je n'arrive pas à retouver la même fonctionnalité.


As tu une idée?



Gégécap
0
gegecap Messages postés 4 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 22 août 2006
22 août 2006 à 16:19
En complément, voici le code que j'ai écrit pour l'événement DragDrop de ma Listview:


Private Sub lsvT_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lsvT.DragDrop
        If Not e.Data.GetDataPresent(GetType(System.Windows.Forms.ListViewItem)) Then
            Exit Sub
        End If
        Dim Source As New ListViewItem
        Source = CType(e.Data.GetData(GetType(System.Windows.Forms.ListViewItem)), ListViewItem)
        Dim I As Integer
        Dim Pt As Point = lsvT.PointToClient(New Point(e.X, e.Y))
        Dim toto As ListViewInsertionMark = lsvT.InsertionMark
        I = toto.NearestIndex(Pt)
        Dim Sourcb As New ListViewItem
        Dim c1 As String
        Dim c2 As String
        c1 = Source.Text
        c2 = Source.SubItems(1).Text
        Sourcb.Text = c1
        Sourcb.SubItems.Add(c2)
        lsvT.Items.Insert(I, Sourcb)
        lsvT.Items.Remove(Source)

I donne toujours la valeur -1
Y-a-t-il une erreur dans le code?
Y-a-t-il une autre façon de récupérer cet index?

Merci à ceux qui voudront bien me répondre



Gégécap
0
Rejoignez-nous