Problème Focus ListView

Résolu
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 - 21 juil. 2005 à 00:37
Golumyrinity Messages postés 18 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 24 septembre 2010 - 22 sept. 2010 à 11:57
Bonjour tout le monde,

J'ai un petit problème !
J'utilise une ListView avec des données dedans et grace à la propriété 'ListView1.SelectedItem' je peux connaître le numéro de la ligne sélectionnée.
Jusque là OK sauf que le problème et que si je sélectionne la première ligne la propriété 'ListView1.SelectedItem' me renvoi 0, et si je sélectionne aucune ligne la propriété 'ListView1.SelectedItem' me renvoi aussi 0 (alors que j'aimerais qu'elle me renvoi -1 par exemple pour me dire aucune ligne est sélectionnée)

Existe t'il un moyen de vérifier qu'une ligne est bien cochée dans le listView en clikant sur un CommandButton (le listview perd le focus)?

Merci d'avance !

Philippe

8 réponses

Ricks27 Messages postés 79 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 29 juillet 2005
21 juil. 2005 à 13:44
Bonjour,



Effectivement, si aucune ligne n'est sélectionnée et que tu cherches à
obtenir le numéro de l'Item sélectionné, cela te renvoie une erreur.

Pour gérer ce cas, il te faut toujours tester si la valeur retournée est égale à Nothing ou pas.

Ricks27
3
Ricks27 Messages postés 79 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 29 juillet 2005
21 juil. 2005 à 09:15
Bonjour,



Pour tester si un item est sélectionner :



If Not MonListeView.SelectedItem Is Nothing then

'Une ligne a été séléctionner

Else

'Il n'y a aucune ligne sélectionné

End If


Pour déselectionner les lignes :



Set MonListeView.SelectedItem = Nothing



Ricks27
0
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
21 juil. 2005 à 10:58
Merci de répondre!

Mais ca ne fonctionne pas exactement comme je le voudrais car en démarrant l'appli (focus pas sur la listview) il considére quans même qu'une ligne est sélectionnée !! POURQUOI?

En fait je voudrais qu'en appuyant sur un TextBox, je sache (par l'intérmédiaire d'un MsgBox par exemple) si une ligne de la listview est sélectionnée (Surlignagne bleu). Sauf que la listview perd le focus mais on peut le contrer en mettant la propriété HideSelection sur False.
0
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
21 juil. 2005 à 11:06
Pardon je me suis gouré, je veux qu'en appuyant sur un CommandButton un msgbox me dise si une ligne de ma LisView est sélectionnée, et si tel est le cas me dire laquelle (View1.SelectedItem).
Le problème est que si le focus est sur la ListView avec une ligne sélectionnée en bleu, si je clicke sur le commandbutton je perd le focus non?
0

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

Posez votre question
Ricks27 Messages postés 79 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 29 juillet 2005
21 juil. 2005 à 11:21
Certe tu perd le focus mais la ligne reste sélectionnée.



Le fait que la ListView ai ou n'ai pas le Focus ne pose aucun problème.

Cela ne t'empècheras pas de récupérer le numéro de la ligne sélectionnée.



Code derrière ton CommandButton



If Not MonListView.SelectedItem Is Nothing then

Msgbox "L'index de la ligne
sélectionnée est " & MonListView.SelectedItem.Index
,VbInformation,"Information"

Else

Msgbox "Il n'y a aucune ligne sélectionnée!",VbInformation,"Attention"

End If



Ricks27
0
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
21 juil. 2005 à 12:01
Oui OK mais j'ai été obligé de mettre dans le FormLoad l'instruction suivante :
Set View1.SelectedItem = Nothing

Car quand tu démarres l'appli, en ne touchant pas à la ListView si tu interroge quel est le numéro de ligne avec View1.SelectedItem.Index il te renvoi 1 (comme si la ligne 1 était sélectionnée alors que rien n'est sélectionné). J'en conclu que par défaut la listview sélectionne la ligne 1 au démarrage.
C'est pourkoi dans le FormLoad je déselcetionne les lignes !

Le index View1.SelectedItem.Index est obligatoire?

Enfin, si les lignes sont déselectionnées [Set View1.SelectedItem = Nothing] si j'utilise la fonction pour savoir quelle ligne est sélectionnée avec selectedItem il plante complétement au lieu de me renvoyer dans la logique -1 ou une chaîne vide comme beaucoup de fonctions VB le font !!!!

En tout cas merci de ton aide, c'est sympa. Vais essayer de me dbrouillais avec ca !

Philippe
0
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
21 juil. 2005 à 16:39
Merci pour to iade Ricks27
0
Golumyrinity Messages postés 18 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 24 septembre 2010
22 sept. 2010 à 11:57
Bonjour à vous,
J'ai été intéressé par votre post et je souhaite vous poser une question simple (enfin je crois^^).
Comment utiliser une ListView ??

Je désire insérer une listView dans un UserForm. Cette ListView afficherais un tableau situé sur une feuille.
Merci de votres réponse :)
0
Rejoignez-nous