gegecap
Messages postés4Date d'inscriptionmardi 15 août 2006StatutMembreDernière intervention22 août 2006
-
21 août 2006 à 21:13
gegecap
Messages postés4Date d'inscriptionmardi 15 août 2006StatutMembreDernière intervention22 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
troxsa
Messages postés553Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention 2 octobre 20161 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 ...
gegecap
Messages postés4Date d'inscriptionmardi 15 août 2006StatutMembreDernière intervention22 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é.
gegecap
Messages postés4Date d'inscriptionmardi 15 août 2006StatutMembreDernière intervention22 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?