[.net2] Selected indice d'un list view qui reagi mal.

Résolu
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 - 17 mars 2006 à 22:24
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 - 18 mars 2006 à 23:05
Bonjour a tous.

j'ai un petit problm car en fait j'ai fait ce code ci:

Private Sub ListView_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView.SelectedIndexChanged
If ListView.SelectedIndices.Count = 1 Then
Button1.Enabled = True
Else
Button1.Enabled = False
End If
End Sub

voila en gros ca affiche un bouton quand un element de ma listview est selectionné, mais voila quand j'execute ce code, le bouton scintille quand je change d'un item selectionné a un autre.
j'ai donc avec pas mal de temps a essayé compris que ma listview quand elle effectue un changement focus d'un item vers un autre fait ceci:
-elle as le focus du 1er item
-le focus du 1er est perdu mais ne vas pas directement au deuxieme mais passe par une phase ou il n'as aucun item de selectionné et donc lance selectedindexchange avec aucun item de selectionné, ca fait donc mon bouton a false.
-le focus revient ensuite au 2nd item selectionné et va donc sur relancer la sub selectedindexchange et remet mon bouton a true.
tout ca bien sur a la vitesse du pc fais croire que le bouton a un refresh ce qui attire quand meme l'oeil.

je n'ai pas trouvé de moyen de remedier a ce prblm, merci de m'en faire part si vous avez trouvé la solution a un prblm qui a dût surement vous arriver, merci !

<hr size="2" width="100%">
L U C Y I3 E R @ D
A voir également:

4 réponses

Utilisateur anonyme
17 mars 2006 à 22:52
Salut,

En faite, il passe deux fois par l'événement SelectedIndexChanged
- Une fois pour la désélection de l'item précédemment sélectionner
- Une fois pour la sélection du nouvel item
Donc pour la première fois, comme il désélectionne, aucun item n'est sélectionner donc il grise ton bouton, et le réactive la deuxième fois. D'ou l'effet de scintillement/

Pour y remédier, une façon de faire, regarder plutôt l'endrois ou on clique: (sur un item ou non)

Private Sub ListView_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView.MouseDown
If ListView.GetItemAt(e.X, e.Y) Is Nothing Then '// Si on a pas cliquer sur un item
Button1.Enabled = False
Else
Button1.Enabled = True
End If
End Sub

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
3
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
17 mars 2006 à 23:00
"En faite, il passe deux fois par l'événement SelectedIndexChanged"
c'est ce que j'ai dit ^^

sinon c'est pas mal cette solution, c'est quand meme "chelou" qu'il n'y ai pas de propriété pour remedier a ca mais bon.
ca fonctionne c le principal, merci !

<hr size="2" width="100%">
L U C Y I3 E R @ D
0
Utilisateur anonyme
18 mars 2006 à 11:06
En effet, c'est ce que t'avais dit:
Houlala, j'ai bien fait de me coucher après. J'ai pas du faire attention, on va dire que c'était la fatigue.

Kenji
0
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
18 mars 2006 à 23:05
c pas grave le plus important y est => la reponse ^^

<hr size="2" width="100%">
L U C Y I3 E R @ D
0
Rejoignez-nous