|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Forms.ListView, SelectedIndexChanged et clignotement [ Archives / Au secours ] (MyXiLo)
Informations & options pour cette discussion
|
jeudi 27 avril 2006 à 19:08:34 |
Forms.ListView, SelectedIndexChanged et clignotement

MyXiLo
|
Bonsoir. L'évènement SelectedIndexChanged se déclenche lorsque la sélection dans un ListView change. Le problème est que lorsqu'un Item est déjà selectionné et que l'utilisateur en sélectionne un autre, SelectedIndexChanged est appelé deux fois: d'abord parcequ'aucun élément n'est plus sélectionné (transition) puis quand l'élément de destination est sélectionné. En fonction de la position de l' Item sélectionné dans le ListView je grise( Enabled=false) ou non des boutons. SelectedIndexChanged s'appelant deux fois consécutivement, mes boutons clignotent (je Enabled=false tout quand rien n'est sélectionné puis Enabled=true pour certains boutons lorsqu'il y a un Item dans la sélection), ce qui est véritablement pénible.
J'aimerais savoir si quelqu'un sait comment faire (sans trop chager le code, car je n'ai aucune envie de passer par le controle du clavier et des fleches, etc.) pour détecter lorsque la sélection change véritablement.
Merci d'avance. Thomas.
|
|
|
|
jeudi 27 avril 2006 à 19:38:42 |
Re : Forms.ListView, SelectedIndexChanged et clignotement
|
|
jeudi 27 avril 2006 à 19:46:52 |
Re : Forms.ListView, SelectedIndexChanged et clignotement

Charles Racaud
|
Salut,
Tu peux aussi passer par les événement du clique. (Si on a cliquer sur un item ou non)
private void TaListView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if (TaListView.GetItemAt(e.X, e.Y) == null) { // On a cliquer a coté d'un item } else { // On a cliquer sur un item // Donc comme un SelectedIndexChanged [...] } }
Kenji
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
|
|
|
|
jeudi 27 avril 2006 à 20:36:14 |
Re : Forms.ListView, SelectedIndexChanged et clignotement

MyXiLo
|
Bidou > Et bien c'est ce que je fais, mais lors de la transition (aucun Item n'est selectionné mais un va bientôt l'être) aucun Item n'est dans la sélection, ce qui "fausse" le test puisqu'en vérité un Item est sélectionné mais pas actuellement. C'est ce qui fait clignoter mes boutons.
Charles Racaud > Le soucis c'est que l'utilisateur peut aussi changer la sélection avec les flèches du clavier. Ca m'embete de vérifier le clavier et la souris mais je ne vais pas avoir le choix je crois...
Merci pour vos réponses.
|
|
|
|
jeudi 27 avril 2006 à 21:09:07 |
Re : Forms.ListView, SelectedIndexChanged et clignotement

Bidou
|
Hum, je ne vois pas trop le problème! Si par exemple, la condition c'est que le text d'un item commence par le caractère "3" pour disabler certain bouton, on ferait comme ça (et ça ne clignote pas) : if (this.listView1.SelectedItems.Count > 0) { if (this.listView1.SelectedItems[0].Text[0] == '3') { this.button1.Enabled = false; this.button2.Enabled = false; } else { this.button1.Enabled = true; this.button2.Enabled = true; } }
 [Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub] C# forever 
|
|
|
|
jeudi 27 avril 2006 à 22:19:36 |
Re : Forms.ListView, SelectedIndexChanged et clignotement

MyXiLo
|
J'ai un ListView contenant plusieurs Items. Un Item est déjà selectionné.L'utilisateur clique sur un autre Item. SelectedIndexChanged se lance et le ListView.Items.Count=0 (car l'Item précédent n'est plus sélectionné et le suivant ne l'est pas encore), je fais mes tests et je définis Button.Enabled=false. SelectedIndexChanged est appelé de nouveau(car l'Item d'arrivée est selectionné, sans intervention supplémentaire du programme ou de l'utilisateur) avec ce coup ci ListView.Items.Count=1, je fais mes tests mais cette fois ci la réaction est Button.Enabled=true.
Avec le changement de sélection mon bouton passe successivement de non autorisé à autorisé, ce qui le fait clignoter.
Ta solution ne fait effectivement pas clignoter les boutons si la fonction qui les contient n'est appelée qu'une fois. En revance si elle est appelé deux fois consécutives et que les réactions sont différentes alors les boutons vont clignoter.
|
|
|
|
jeudi 27 avril 2006 à 22:54:49 |
Re : Forms.ListView, SelectedIndexChanged et clignotement
|
|
vendredi 28 avril 2006 à 10:25:01 |
Re : Forms.ListView, SelectedIndexChanged et clignotement

MyXiLo
|
Bonjour, En vérité j'avais mal lu ton code et effectivement il n'y a pas de clignotement. Pour ce qui est de mon code, je n'effectue pas uniquement le test lorsqu'il y a un Item dans la sélection mais aussi lorsqu'il n'y en a. if (this.ListView.SelectedItems.Count == 1) { if(this.ListView.SelectedItems[0].Index > 0) { this.Button.Enabled=true; } else { this.Button.Enabled=false; } } else { this.Button.Enabled=false; }
Lorsque l'utilisateur clique sur des Items qui ne sont pas en première position il y a clignotement. Désolé de m'être mal expliqué.
|
|
|
|
vendredi 28 avril 2006 à 10:30:39 |
Re : Forms.ListView, SelectedIndexChanged et clignotement

Nikoui
|
Bidou, tu rajoute un test "si la premiere lettre est un 3"... mais le problème de l'auteur du post (si j'ai bien compris), c'est que le seul test qu'il veux faire c'est : "un item est sélectionné ?". (autrement dit, execute ton code sur un treeview dont tous les items commencent par 3 pour reproduire le meme probleme avec ton code...).
|
|
|
|
vendredi 28 avril 2006 à 11:56:23 |
Re : Forms.ListView, SelectedIndexChanged et clignotement

Bidou
|
Euh, je ne sais pas si je suis bête ou quoi, mais je vois pas le problème lol. Finalement, c'est quoi le but? De disabler un bouton lorsque le premier élément d'un ListView est sélectionné ? Si oui, on fait comme ça (et ça ne clignote pas) : if (this.listView.SelectedItems.Count == 1) { this.button.Enabled = this.listView.SelectedItems[0].Index > 0; }
 [Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub] C# forever 
|
|
|
Cette discussion est classé dans : listview, sélection, item, sélectionné, selectedindexchanged
Répondre à ce message
Sujets en rapport avec ce message
Sélection automatique d'1 item dans la listView [ par oboudou ]
Bonjour,J'aimmerais sélectionner "par la programmation" un item dans la listView. Ex : J'aimerais que dans ma listeView ma troisieme ligne soit sélect
Afficher dans une Picturebox un item sélectionné dans un TreeView [ par louve_alpha ]
Bonsoir,J'ai un TreeView qui affiche en tant qu'item des images appartenant à un dossier. Je voudrais afficher dans une PictureBox l'image sélectionné
ListView [ par Bidou ]
Imaginons que j'aie un listview (View Details) qui contient 100 éléments (en colonne donc).Je peux voir seulement les 10 premiers éléments dans le lis
Couleur ListView [ par syl2 ]
Bonjour, j'ai quelques soucis pour mettre de la couleur sur un item spécifique de ma ListView. Contexte : je réalise un chat en C#, et en faite, si un
ListView et sélection d'un item [ par yfocal ]
Bonjour, voici mon pb : J'ai une ListView avec des items. Sur chaque item (chaque ligne), j'ai une cellule qui quand on clique dessus, ouvre un Col
listview + help [ par emmanuel9 ]
Bonjour, Il y a l'evenement listview_SelectedIndexChanged du listview qui se produit quand un item du listview change mais y'a t'il un moyen de faire
Sélectioner une item d'une ListView [ par bucherb ]
Hello!Il faut que je sélectionne dynamiquement une item d'une listview. Je trouve pas comment le faire avec le code, donc j'ai essayé d'utiliser l'api
Listbox: sélection d'un item [ par 0xYg3n3 ]
Bonjour, je voulais savoir si il est possible lorsque un utilisateur fait un clik droit sur un élément de la listbox, cela sélectionne l'item et o
ListView et couleur selection items [ par YLSEAGLE ]
Bonjour à tous. Je cherche à changer la couleur de sélection d'un item dans une listview. Par défaut, celle ci est de couleur bleu avec le texte en bl
Changer la couleur de sélection d'un contrôle [ par taharban ]
Bonjour,comment changer la couleur de l'item sélectionné dans une listbox ou combobox ?Par défault, l'item sélectionné est en bleu (par défaut sur mon
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|