Probléme de drag and drop avec deux listview

Résolu
cs_ultimafight
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006
- 4 août 2006 à 01:25
cs_ultimafight
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006
- 5 août 2006 à 01:04
Salut,
voici :
un probléme tres simple, mais que je n'arrive pas à résoudre
J'ai deux listview
lors d'un drag and drop
il me propose de mettre l'item dans un item de la listeview , mais pas a coté ("icone d'interdiction")
j'ai reperé le probléme au niveau de  l'evenement : DragOver, que j'utilise pour mettre en surbrillance l'objet survoler pendant le drag

En fait je vroudrais pouvoir droper mon item dans la listview où je veut , c'est à dire à la racine ou dans un item.

en Fait des que j'utilise la fonction GetItmAt , cela m'interdit de droper a cotes d'un item.

voila le bout de code que j'utilise pour mettre en surbrillance.
Il doit me manquer quelque chose non ?

Merci  d'avance , pour vos réponse

a+

Private
Sub ListViewEspaceTravail_DragOver(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.DragEventArgs)
Handles ListViewEspaceTravail.DragOver
Dim liste
As ListView

liste = ListViewEspaceTravail  ' etant la listeview qui recois

Dim pt
As Point = liste.PointToClient(
New Point(e.X, e.Y))

'ici on supprime la surbrillance du precedent et on met le nouveau en surbrillance

If liste.GetItemAt(pt.X, pt.Y).BackColor <> SystemColors.Highlight
ThenResetListeViewItemsColor(liste.Items(ItemPrc))

liste.GetItemAt(pt.X, pt.Y).BackColor = SystemColors.Highlight

liste.GetItemAt(pt.X, pt.Y).ForeColor = SystemColors.HighlightText

ItemPrc = liste.GetItemAt(pt.X, pt.Y).Index

ItemDrope = liste.GetItemAt(pt.X, pt.Y).Text

End
If

 

9 réponses

cs_ultimafight
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

5 août 2006 à 01:04
Enfin trouver la soluce toute bete


Il fallais inserer un



if liste.GetItemAt(pt.X, pt.Y) is nothing then exit sub

merci  fregolo52 pour le debut de soluce
A+
3
fregolo52
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
3
4 août 2006 à 10:04
Salut,

J'ai déjà utilisé les lisrview et comme toi j'ai bien galéré.

Peux-tu m'en dire plus.

Es-tu en mode icône ? Si oui, que se passe-t-il quand tu drop ? ton item se met en fin de liste ?

J'ai remarqué qu'il y a des pb en mode icone à qu'un mode texte (liste ou détail) ça marche bien.
0
cs_ultimafight
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

4 août 2006 à 11:12
Bonjour,
j'utilise le mode icone+text


Le probléme est que je ne peut pas ajouter des items à la racine de la listeview
si j'utilise la fonction GetItemAt


En fait je voudrais faire comme dans l'explorateur de fichier :
Pouvoir ajouter un item à la racine ou dans un item. (les deux ensembles ne fonctinnent pas)
Thx
0
fregolo52
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
3
4 août 2006 à 11:17
Je t'avoue que je suis perdu.
Tu me parles de racine, je vois ce que c'est dans une TreeView, mais dans une ListView, je vois pas.
Tu as un controle de type TreeListView ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ultimafight
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

4 août 2006 à 11:18
re :
j'ai la signe de souris (\) quand je suis a cotes des items
0
cs_ultimafight
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

4 août 2006 à 11:19
re non
En fait la listeview fonctionne comme un explorateur de fichier, mais avec des objets
je parle de racine, quand on est dans un emplacement sans Items
0
fregolo52
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
3
4 août 2006 à 11:59
Je sèche un peu, désolé.

Mais dans le code que tu fournis, fait attention GetItemAt retour null si tu n'es pas sur un item.
Je ne sais pas où sont les try catch mais moi je ferais :

monItem = liste.GetItemAt(pt.X, pt.Y)
if nomItem <> Nothing then

  If nomItem.BackColor <> SystemColors.Highlight
Then
...

Fais pas attention à la syntaxe, j'ai plus l'habitude du C.
0
cs_ultimafight
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

4 août 2006 à 16:40
Probléme inverse avec cette solution
Je ne peut pas droper sur un item symbole (\)
0
cs_ultimafight
Messages postés
22
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
4 août 2006

4 août 2006 à 16:45
En fait je pense que c'est fonction GetItemAt dans un listeview qui ne permet pas a la fois de droper sur un item ou à cotes.
Y a t'il une autre solution ? genre api sendmessage ?
0