Meilleur auteur de réponses
[C#]2 Questions sur ListViewItem

Question
-
Bonjour,
J'ai deux questions sur deux sujets différents mais sur le même composant :
1er question :
J'ai un tableau multicolonne, je souhaite que lorsque on clique sur une ligne de la ListViewItem, cela sélectionne toute la lignes.
Comment faire ?
Voir l'exemple ci dessus.
lv_Affiche est la ListViewItem.
lv_Afficher.Columns.Add("Id", -3, HorizontalAlignment.Left); lv_Afficher.Columns.Add("Identifiant", -3, HorizontalAlignment.Left); lv_Afficher.Columns.Add("Nom", -3, HorizontalAlignment.Left); lv_Afficher.Columns.Add("Prénom", -3, HorizontalAlignment.Left); foreach(var pers in data) { ListViewItem item = new ListViewItem(pers.id); item.SubItems.Add(pers.identifiant); item.SubItems.Add(pers.nom); item.SubItems.Add(pers.prenom); lv_Afficher.Items.Add(item); }
2 éme Question
J'ai un tableau multicolonne, je souhaite que lorsque on clique sur une ligne de la ListViewItem, je puisse récupérer les valeurs de la ListViewItem dans une chaine.
Comment faire ?
Merci de votre aide...
- Modifié WebForm jeudi 11 juin 2015 12:26
Réponses
-
1er Question:
Dans la feuille de propriétés de la listview , sélectionnez FullRowSelect et mis à true.
2eme Question:
//methode pour recuperer les valeurs de la listView: ArrayList aList = new ArrayList(); string delimiter = ";"; for(int i = 0; i< listView.Items.Count; i++) { string columns = String.Empty; columns += listView1.Items[i].Text + delimiter; columns += listView1.Items[i].Subitems[1].Text + delimiter; columns += listView1.Items[i].Subitems[2].Text + delimiter; columns += listView1.Items[i].Subitems[3].Text; aList.Add(columns); } //Pour visualiser le resultat: StringBuilder sb = new StringBuilder(); foreach(string line in aList) sb.AppendLine(line); MessageBox.Show(sb.Tostring());
- Marqué comme réponse WebForm dimanche 14 juin 2015 06:57
-
Bonjour,
J'aime mieux utiliser une autre solution.
Les listes, ComboBox, ListBox etc utilise la fonction ToString pour afficher les objets d'une classe.
Redéfinissez la fonction ToString, par exemple:
Définissez une classe Personne
public class Personne
{
int m_ID;
string m_Prenom;
string m_Nom;
public Personne(int p_ID, string p_Prenom, string p_Nom)
{
m_ID=p_ID;
m_Prenom = new string(p_PRenom.ToCharArray());
m_Nom=new string(p_PRenom.ToCharArray());
}Afficher uniquement le prénom et le nom
public override string ToString()
{
return m_Prenom + " " m_Nom;
}int ID { get { return m_ID; } }
string Prenom{ get { return m_Prenom; } }
string Nom{ get { return m_Nom; } }
}dans le programme vous remplissez la liste avec votre classe
ListBox LboxPersonnes = new ListBox();
LboxPersonnes.Items.add(new Personne(0,"Jo", "Dalton"));
etc.Lorsque l'utilisateur sélectionne une personne dans la liste
vous pouvez récupérer les informations comme suit:Personne unePErsonne = (Personne) LboxPersonnes.selectedItem;
Cordialement
Gérard -
Toutes les réponses
-
1er Question:
Dans la feuille de propriétés de la listview , sélectionnez FullRowSelect et mis à true.
2eme Question:
//methode pour recuperer les valeurs de la listView: ArrayList aList = new ArrayList(); string delimiter = ";"; for(int i = 0; i< listView.Items.Count; i++) { string columns = String.Empty; columns += listView1.Items[i].Text + delimiter; columns += listView1.Items[i].Subitems[1].Text + delimiter; columns += listView1.Items[i].Subitems[2].Text + delimiter; columns += listView1.Items[i].Subitems[3].Text; aList.Add(columns); } //Pour visualiser le resultat: StringBuilder sb = new StringBuilder(); foreach(string line in aList) sb.AppendLine(line); MessageBox.Show(sb.Tostring());
- Marqué comme réponse WebForm dimanche 14 juin 2015 06:57
-
Bonjour,
J'aime mieux utiliser une autre solution.
Les listes, ComboBox, ListBox etc utilise la fonction ToString pour afficher les objets d'une classe.
Redéfinissez la fonction ToString, par exemple:
Définissez une classe Personne
public class Personne
{
int m_ID;
string m_Prenom;
string m_Nom;
public Personne(int p_ID, string p_Prenom, string p_Nom)
{
m_ID=p_ID;
m_Prenom = new string(p_PRenom.ToCharArray());
m_Nom=new string(p_PRenom.ToCharArray());
}Afficher uniquement le prénom et le nom
public override string ToString()
{
return m_Prenom + " " m_Nom;
}int ID { get { return m_ID; } }
string Prenom{ get { return m_Prenom; } }
string Nom{ get { return m_Nom; } }
}dans le programme vous remplissez la liste avec votre classe
ListBox LboxPersonnes = new ListBox();
LboxPersonnes.Items.add(new Personne(0,"Jo", "Dalton"));
etc.Lorsque l'utilisateur sélectionne une personne dans la liste
vous pouvez récupérer les informations comme suit:Personne unePErsonne = (Personne) LboxPersonnes.selectedItem;
Cordialement
Gérard -
-
Bonjour,
il me reste un seul probleme :
Lorsque je récupère la donnée.
Je récupère sous cette forme :
ListViewItem: {Ordinateur portable 14"}
ListViewItem: {Ordinateur portable 15"}
ListViewItem: {Ordinateur portable 15"}et non comme cela
Ordinateur portable 15"
Il y a t'il une solution ou dois je travail la chaîne récupérer.
-