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

C# Discussion :

Ordre des colonnes ListView en mode detail


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut Ordre des colonnes ListView en mode detail
    Bonjour

    J'ajoute des éléments dans un ListView avec 2 colonnes "Description" et "Valeur" (et "Num" mais on s'en fiche de celui là)
    Mon LisView est affiché en mode détail et j'ai ainsi 3 colonnes.

    La colonne "description" contient un texte figé qui dit à quoi correspond le texte contenu dans la colonne "Valeur"

    Comme je dois pouvoir modifier le texte des items dans la colonne "Valeur" (et seulement ce champ là) j'ai activé la propriété LabelEdit et je valide la saisie via l’évènement AfterLabelEdit, ca me fait une interface d'édition très pratique et très simple.

    Mon soucis est que pour que la colonne "Valeur" soit éditable (que ce soit l'Item et pas un subitem), je dois la créer en premier et elle se retrouve donc affichée en premier
    Mes colonnes sont dans l'ordre "Valeur"(éditable)|"Description"|"Num"
    alors que je souhaite avoir "Description"|"Valeur"(Editable)|"Num"

    Voici le code que j'utilise pour remplir mon ListView
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    listViewParametres.Columns.Add("Valeur");
                listViewParametres.Columns.Add("Description");            
                listViewParametres.Columns.Add("Num");
     
                var item1 = new ListViewItem(new[] { "valeur 1", "Tom", "1" });
                var item2 = new ListViewItem(new[] { "valeur 2", "bob", "24" });
                var item3 = new ListViewItem(new[] { "valeur 3", "trtr", "123" });
                var item4 = new ListViewItem(new[] { "valeur 4", "xxcv", "756" });
                var item5 = new ListViewItem(new[] { "valeur 5", "bcbb", "456" });
                var item6 = new ListViewItem(new[] { "valeur 6", "iuiu", "56" });
                listViewParametres.Items.Add(item1);
                listViewParametres.Items.Add(item2);
                listViewParametres.Items.Add(item3);
                listViewParametres.Items.Add(item4);
                listViewParametres.Items.Add(item5);
                listViewParametres.Items.Add(item6);
    En activant AllowColumnReorder je peux manuellement faire ce que je veux après exécution de ce code ; comment puis je avoir l'item en colonne 2 par le code ?

    Merci par avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Nouveau jour,

    Le DataGridView permet ça et il existe d'autres controles visuels payants ou libres.

    dotnetperls.com:The DataGridView can display a List

    msdn.microsoft.com:How to Bind Objects to Windows Forms DataGridView Controls

  3. #3
    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
    Par défaut
    Bonsoir

    le listView en mode détail peut le faire (pas besoin d'un datagrid pour faire celà - sans commentaires )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    listViewParametres.Columns[0].DisplayIndex = 1;
    listViewParametres.Invalidate();
    le Invalidatee() permet de forcer le rafraîchissement du controle (sinon, tu auras un truc moche)...

  4. #4
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Bonjour

    Citation Envoyé par theMonz31 Voir le message
    .unaise , je me bats avec Index depuis des heures ,en lecture seul bien sur Index...

    Merci beaucoup !

  5. #5
    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
    Par défaut
    pour info,

    j'ai fait une simple recherche en "anglais" et rapidement, j'ai trouvé une réponse sur stackoverflow

    Penses à mettre "résolu"

  6. #6
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    pour info,

    j'ai fait une simple recherche en "anglais" et rapidement, j'ai trouvé une réponse sur stackoverflow
    Savoir rechercher fait partie de la compétence... quand on ne cherche pas ce qu'il faut ou que l'on ne voit pas que l'on a la solution dans les résultats de recherche c'est qu'on est une buse...j'assume ...


    Citation Envoyé par theMonz31 Voir le message
    Penses à mettre "résolu"
    alors là par contre le site bug parce que non seulement je suis sur d'avoir cliqué sur résolu mais en plus j'ai un bouton " n'est plus résolu" maintenant.

    Je viens d'aller voir un de mes autres posts sur un autre forum c'est pareil, la balise n'est pas là alors que le sujet a le bouton "n'est plus résolu"

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    pas besoin d'un datagrid pour faire celà - sans commentaires )
    C'est très bien le datagrid.

    Tout dépend de l'usage, du nombre d'items et du rendu visuel.

  8. #8
    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
    Par défaut
    Je ne dénigre pas le datagrid... mais j'aurais tendance à dire que lorsque quelqu'un pose une question, la première chose avant de proposer un changement de controle,
    d'architecture ou autre est de voir si il n'y a pas une réponse qui existe fourni par le contrôle lui-même ou bien une astuce...

    Après, si la question est suffisement précise, propose une alternative est une bonne chose...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    Je ne dénigre pas le datagrid... mais j'aurais tendance à dire que lorsque quelqu'un pose une question, la première chose avant de proposer un changement de controle,
    d'architecture ou autre est de voir si il n'y a pas une réponse qui existe fourni par le contrôle lui-même ou bien une astuce...

    Après, si la question est suffisement précise, propose une alternative est une bonne chose...
    Je suis partisan d'avoir de bonnes habitudes même si on bidouille. Donc au vue du problème posé, comme pour toute chose, je me suis dit qu'une question sous-jacente serait de déterminer pour le but recherché qu'est-ce qui ergonomiquement et fonctionnellement serait le mieux adapté : un listview ou un datagrid (ou autre) ? Alors j'ai proposé le datagrid que parfois on connait pas ou auquel on ne pense pas.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/03/2007, 14h31
  2. [vb6] Changez dynamiquement ordre des colonnes dans listview ?
    Par sun19 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/10/2006, 16h50
  3. [C#] ordre des colonnes dans un datagrid
    Par enfants dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/06/2006, 01h35
  4. Ordre des Colonnes d'une requête
    Par dlh1222 dans le forum Access
    Réponses: 4
    Dernier message: 14/09/2005, 23h43
  5. Rajout colonne - changer l'ordre des colonnes ?
    Par Coptere dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 13/09/2005, 10h56

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