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 :

Un item multi ligne dans un listView


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 65
    Points
    65
    Par défaut Un item multi ligne dans un listView
    J'ai un listView avec un champ "Description" un item de cette liste peut avoir des "\r\n".
    Je voudrais que dans cette listView ca respect les sauts de ligne mais je ne sais pas comment faire.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    foreach (Article item in listArticle)
    {
    	ListViewItem lvItem = new ListViewItem(item.Code_article);
    	lvItem.SubItems.Add(item.Quantity.ToString());
    	lvItem.SubItems.Add(currentArticle.Description);
    	lvItem.Tag = item;
    	myListView.Items.Add(lvItem);
    }
     
    myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
    un petit exemple :
    1 | 5 | Mon petit commentaire simple
    2 | 9 | Mon grand commentaire \r\n avec des sauts de ligne.
    3 | 25 | Mon petit commentaire simple
    4 | 59 | Mon super grand commentaire \r\n avec des sauts de ligne \r\n de partout !
    Dans ma liste j'ai des petits carré à la place "\r\n" j'aimerais que ca respecte le saut de ligne à l'intérieure du champ de mon item.

    Merci de votre aide

  2. #2
    Membre du Club
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 65
    Points
    65
    Par défaut
    Personne est capable de me répondre ?
    C'est possible ou pas se que je souhaite faire ou faut il que j'utilise un objet autre que la listView ??

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Je ne pense pas que ce soit possible avec une ListView. Tu pourrais mettre OwnerDraw à true pour dessiner toi-même les sous-éléments, mais ça ne te permettrait pas de modifier la hauteur des items (identique pour tous), donc ça ne t'avance pas beaucoup...

    Le plus simple à mon avis serait d'utiliser un DataGridView, qui permet d'obtenir à peu près la même présentation, et en plus supporte le binding

  4. #4
    Membre du Club
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 65
    Points
    65
    Par défaut
    ok merci, c'est bien se que je pensais.
    Je vais utilisais le DataGridView, va t il détecter mes \r\n comme des retour chariot ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par DarkLeon Voir le message
    Je vais utilisais le DataGridView, va t il détecter mes \r\n comme des retour chariot ?
    Il me semble que oui, mais faut vérifier...

  6. #6
    Membre du Club
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 65
    Points
    65
    Par défaut
    Ouais je vais testé je te tiens au courant.
    Mon ListViewItem je le remplace par un DataGridViewRow mais il n'a pas de subItem ...

    Peux tu me dirigé vers un tuto ou un exemple pour les DataGridView, ou bien m'expliquer comment je peu modifier mon code utilisant la listView par un DataGridView.

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    sinon, as tu regardé ici :

    Code Project listView ?

    sinon, une autre solution :

    Propriété OwnDraw à True

    Surcharger le DrawItem et le DrawSubItem pour faire ton wrapping

    Et mettre par defaut , la taille de la police à une grande taille puis dans le Draw mettre une taille à toi.. J'ai testé, ça marche Par contre, chaque ligne à la même taille...

    Une autre idée : A une époque, j'utilise le MSFlexGrid pour faire ce genre d'affichage (équivalent au mode détail de la listview .. si ça peut aider !!!
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par DarkLeon Voir le message
    Ouais je vais testé je te tiens au courant.
    Mon ListViewItem je le remplace par un DataGridViewRow mais il n'a pas de subItem ...
    Il a pas besoin de "subitems", il a des colonnes... De toutes façons, plutôt que de remplir manuellement le DataGridView, utilise le data binding (cf. plus bas)

    Citation Envoyé par DarkLeon Voir le message
    Peux tu me dirigé vers un tuto ou un exemple pour les DataGridView ou bien m'expliquer comment je peu modifier mon code utilisant la listView par un DataGridView.
    En gros tu mets ta listArticle comme DataSource du DataGridView, et pour chaque colonne tu mets comme DataPropertyName le nom de la propriété à afficher dans cette colonne. Après, c'est automagique

    Pour les tutos et exemples, un petit coup de google... il y a des centaines d'exemples partout sur le net, c'est un des composants les plus utilisés

  9. #9
    Membre du Club
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 65
    Points
    65
    Par défaut
    Merci tomlev, dans mon exemple de code j'ai super simplifié, je souhaite vraiment les ajoutées à la main.

    theMonz31, je ne souhaite pas utiliser de composant extérieure, on en a un dans le même style mais il me convient pas. Je veux pas d'usine à gaz non plus, un truc vraiment simple.

    Je vais me démerder avec le DataGridView, merci de votre aide.

    Edit : j'arrive bien a ajouter toutes les données mais par contre j'ai la même chose que pour la listView.
    Je pourrais pas mettre tel colonne en RichTextBox ??

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par DarkLeon Voir le message
    Edit : j'arrive bien a ajouter toutes les données mais par contre j'ai la même chose que pour la listView.
    Je pourrais pas mettre tel colonne en RichTextBox ??
    Y a pas de DataGridViewRichTextBoxColumn...
    Par contre, tu peux le faire avec une colonne texte normale, il faut modifier son style (DefaultCellStyle) en mettant WrapMode à true. Je viens de tester, ça fonctionne

  11. #11
    Membre du Club
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 65
    Points
    65
    Par défaut
    je viens de trouvé aussi c'est effectivement ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listView.Columns["ArticleLibelle"].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
    Merci de votre aide, sujet résolu

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

Discussions similaires

  1. Suppression d'une ligne dans une listview
    Par Spidermeu dans le forum C#
    Réponses: 6
    Dernier message: 08/09/2008, 13h59
  2. Récuperation d'une ligne dans un listview
    Par guyanais dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/02/2008, 20h09
  3. Multi ligne dans un dbGrid
    Par kamel2002 dans le forum Débuter
    Réponses: 1
    Dernier message: 14/12/2007, 15h51
  4. Jtable et multi-lignes dans les cellules
    Par tuxor dans le forum Composants
    Réponses: 2
    Dernier message: 19/11/2005, 07h32
  5. Multi lignes dans un StringGrids ?
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/11/2002, 23h15

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