IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] Surlignage d'un élement d'une ListView


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 18
    Points : 15
    Points
    15
    Par défaut [C#] Surlignage d'un élement d'une ListView
    Salut à tous...
    Comment puis je surligner un élément d'une listview, sans utiliser la méthode ListView.Item[index].Selected = true ?
    J'exécute une méthode sur sélection d'un élément de listview. Mais après l'exécution de la méthode, l'élément sélectionné n'est plus surligné. voici ce que je fais actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    					private void listViewMembres_SelectedIndexChanged(object sender, System.EventArgs e)
    					{
    						try
    						{
    							if (0 < listViewMembres.SelectedItems.Count) AfficheInformations(new InfoDossier(listViewMembres.FocusedItem.Text));
    						}
    						catch(Exception f)
    						{
    							MessageBox.Show(f.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Stop);
    							return;
    						}
    					}
    PowerDesigner 9.5 - SQL Server 2000 - Visual Studio .NET 2003

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    ca doit deconner à cause de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listViewMembres.FocusedItem.Text
    parce que si tu as plus d'un item selectionné, donné le focus à un item particulier, il doit avoir du mal.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AfficheInformations(new InfoDossier(listViewMembres.FocusedItem.Text));
    ca fait quoi exactement?
    car comment geres-tu le fait que plusieurs items peuvent etre selectionnés?
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Le problème de multi sélection ne se pose pas en fait parce que ma listview est multiselect = false.
    quant à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AfficheInformations(new InfoDossier(listViewMembres.FocusedItem.Text));
    , elle permet en fait d'afficher sur l'écran des informations concernant un dossier à partir de son numéro. Le numéro du dossier sélectionné étant "listviewmembres.focuseditem.text". Lorsque je remets la sélection sur le dossier sélectionné après affichage des informations en utilisant "listviewmembres.items[index].selected = true", j'ai une boucle infinie puisque je suis dans le selectedindexchanged de la listview. Alors par quel autre moyen puis je passer ?
    PowerDesigner 9.5 - SQL Server 2000 - Visual Studio .NET 2003

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    pour moi, ce code marcherait car je l'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void listViewMembres_SelectedIndexChanged(object sender, System.EventArgs e) 
                   { 
                      try 
                      { 
                         if (0 < listViewMembres.SelectedItems.Count) AfficheInformations(new InfoDossier(listViewMembres.selectedItem[0].Text)); 
                      } 
                      catch(Exception f) 
                      { 
                         MessageBox.Show(f.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Stop); 
                         return; 
                      } 
                   }
    car en faisant ainsi, tu ne selectionne pas l'item, tu prend celui qui est deja selectionné donc pas de boucle infinie.
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Je suis d'accord avec pharaonix : selectedItem est un tableau qui contient la liste de tous les items sélectionnées. Comme ta listView n'est pas multiselect, le 1er item sélectionné, d'indice 0, est celui qui t'interesse

    A+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Ok mais quand j'utilise Listview.SelectedItems[0], à la fin, l'élément sélectionné dans la listview n'est plus surligné. Et c'est ça mon réel problème, je voudrais que l'élément sélectionné reste surligné après affichage des informations sur le dossier. Comment faire ?
    PowerDesigner 9.5 - SQL Server 2000 - Visual Studio .NET 2003

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    je comprend pas ton probleme. un element surligné RESTE surligné sauf si tu dis a la listview d'en selectionner un autre. j'ai un prog a moi qui en fonction des dossiers te proposent plusieurs fonctions, et ca marche nickel
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Eh ben mon problème c'est que l'élément de ma listview sélectionné n'est pas surligné. Maintenant je ne peux pas te dire s'il était surligné avant l'exécution de ma méthode ou si c'est après l'exécution de ma méthode qu'il perd la sélection. Si c'est le cas, comment redonner la sélection à l'élément qui était sélectionné avant l'exécution de ma méthode ? Ce qui m'interesse essentiellement c'est le surlignage (ou surlignement, je sais pas trop comment on dit). Je désespère...
    PowerDesigner 9.5 - SQL Server 2000 - Visual Studio .NET 2003

  9. #9
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private void listViewMembres_SelectedIndexChanged(object sender, System.EventArgs e)
                   {
                      try
                      {
                         if (0 < listViewMembres.SelectedItems.Count) AfficheInformations(new InfoDossier(listViewMembres.selectedItem[0].Text));
    listViewMembres.Focus();
                      }
                      catch(Exception f)
                      {
                         MessageBox.Show(f.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Stop);
                         return;
                      }
                   }

    des fois que ce soit juste un problème de Focus....

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Effectivement c'était juste un problème de focus....
    Qu'est ce que c'est bête. Désolé de vous avoir autant dérangé les gars. En tout cas merci beaucoup...
    PowerDesigner 9.5 - SQL Server 2000 - Visual Studio .NET 2003

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un Hint dans une ListView
    Par Larion dans le forum C++Builder
    Réponses: 13
    Dernier message: 13/03/2005, 13h45
  2. [C#] [WinForms] Redimensionnement automatique d'une ListView
    Par Phenomenium dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/02/2005, 11h43
  3. Changer dynamiquement la couleur d'un item d'une listview
    Par little_cypress dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/11/2004, 14h46
  4. [VB.NET] Objet .Tag dans une ListView
    Par Lois dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/10/2004, 16h35
  5. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo