Problème Focus ListView [Résolu]

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

8 réponses

Meilleure réponse
Messages postés
79
Date d'inscription
mardi 4 juin 2002
Dernière intervention
29 juillet 2005
- 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é 88 internautes ce mois-ci

Messages postés
79
Date d'inscription
mardi 4 juin 2002
Dernière intervention
29 juillet 2005
- 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
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Dernière intervention
13 avril 2013
- 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.
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Dernière intervention
13 avril 2013
- 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?
Messages postés
79
Date d'inscription
mardi 4 juin 2002
Dernière intervention
29 juillet 2005
- 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
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Dernière intervention
13 avril 2013
- 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
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Dernière intervention
13 avril 2013
- 21 juil. 2005 à 16:39
0
Merci
Merci pour to iade Ricks27
Messages postés
18
Date d'inscription
mercredi 22 septembre 2010
Dernière intervention
24 septembre 2010
- 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.