Lucyberad
Messages postés414Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention26 juillet 2007
-
17 mars 2006 à 22:24
Lucyberad
Messages postés414Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention26 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:
[.net2] Selected indice d'un list view qui reagi mal.
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.
Lucyberad
Messages postés414Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention26 juillet 20073 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 !