Problème Focus ListView [Résolu]

philippe laschweng 1 278 Messages postés jeudi 14 avril 2005Date d'inscription 13 avril 2013 Dernière intervention - 21 juil. 2005 à 00:37 - Dernière réponse : Golumyrinity 18 Messages postés mercredi 22 septembre 2010Date d'inscription 24 septembre 2010 Dernière intervention
- 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
Afficher la suite 

8 réponses

Meilleure réponse
Ricks27 79 Messages postés mardi 4 juin 2002Date d'inscription 29 juillet 2005 Dernière intervention - 21 juil. 2005 à 13:44
3
Merci
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

Merci Ricks27 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Ricks27 79 Messages postés mardi 4 juin 2002Date d'inscription 29 juillet 2005 Dernière intervention - 21 juil. 2005 à 09:15
0
Merci
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
philippe laschweng 1 278 Messages postés jeudi 14 avril 2005Date d'inscription 13 avril 2013 Dernière intervention - 21 juil. 2005 à 10:58
0
Merci
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.
philippe laschweng 1 278 Messages postés jeudi 14 avril 2005Date d'inscription 13 avril 2013 Dernière intervention - 21 juil. 2005 à 11:06
0
Merci
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?
Ricks27 79 Messages postés mardi 4 juin 2002Date d'inscription 29 juillet 2005 Dernière intervention - 21 juil. 2005 à 11:21
0
Merci
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
philippe laschweng 1 278 Messages postés jeudi 14 avril 2005Date d'inscription 13 avril 2013 Dernière intervention - 21 juil. 2005 à 12:01
0
Merci
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
philippe laschweng 1 278 Messages postés jeudi 14 avril 2005Date d'inscription 13 avril 2013 Dernière intervention - 21 juil. 2005 à 16:39
0
Merci
Merci pour to iade Ricks27
Golumyrinity 18 Messages postés mercredi 22 septembre 2010Date d'inscription 24 septembre 2010 Dernière intervention - 22 sept. 2010 à 11:57
0
Merci
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 :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.