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#] [WinForms] Définir largeur colonne DataGrid


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut [C#] [WinForms] Définir largeur colonne DataGrid
    Bonjour les amis 8) !

    Je pense que tout ai dit dans le titre mais bon...

    Donc voila, j'ai un datagrid lié avec avec une dataview qui elle meme est lié a une table de mon dataset.

    J'aimerais,en fonction de la largeur des éléments contenues dans ma grille, élargir ma colonne.

    Bref plus jai une ligne longue dans ma grille et plus je veux que sa colonne soit grande... (j'ai du mal a me faire comprendre je crois ! )

    Donc voila...

    Je reprécise aussi que je suis en Winform...

    Merci lles zamis!!!

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Tu pourrais faire en sorte que la largeur de ta grille se fasse en fonction du nombre de caractères de la chaine la plus longue.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    lol!!!!
    c'est ce que je veux faire exactement...

    Et ce que je recherche ca serait comment le faire....

    si t'avais un tit bou de code merci

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    et bien tu déclares une variable globale de type string taString qui prend à chaque fois la plus longue string de ta grille(en utilisant Length) et ta grille prend comme largeur taString.Length.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    ok sur le principe...

    mais comment faire par le code :
    et ta grille prend comme largeur taString.Length.
    Comment définir la largeur de ma grille ? c quelle propriété???

  6. #6
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    ça marche pas ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGrid.PreferredColumnWidth = taString.Length;
    pour la largeur d'une colonne
    et ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGrid.Size.Width = taString.Length + toutLeReste
    pour la largeur du DataGrid :

  7. #7
    Membre à l'essai

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 23
    Points
    23
    Par défaut Regarde là bas.
    Bonjour,

    Je ne pense pas que cela fonctionne. En effet si tu utilises une police comme celle utilisée sur le forum, la largeur d'un caractère est différente d'un caractère à l'autre (eg : i < m ). Il te faut donc récupérer la taille maximum des chaînes 'dessinées'. Pour ton information il faut utiliser la fonction 'MeasureString' de la classe Graphics.

    Pour ce qui est l'affectation de la largeur de la colonne, je pense qu'il est préférable de passer par la classe DataGridColumnStyle qui permet de faire beaucoup de chose pour ce qui est de la mise en forme des datagrids

    Salutations

  8. #8
    Membre à l'essai

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 23
    Points
    23
    Par défaut Voilà le parfait exemple
    Regarde ici
    c'est exactement ce qu'il te faut.

    En espérant t'avoir été utile

  9. #9
    Membre habitué
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Points : 132
    Points
    132
    Par défaut
    Bien vu Xaviouss, c'est bien comme ça qu'il faut faire (euh, en tout cas, c'est comme ça que je fais )

    J'ai déjà posté qqch sur le sujet, avec le code commenté, c'est disponible ici

    Faudra envoyer ça vers la FAQ, en tout cas.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    yeeepa!
    Merci les coupains!
    Je commence bien ma semaine moi

    Merci encore

    +++


    Dj-SbenS

  11. #11
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    n'oublie pas le tag si c'est bon

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    j'allais oublier!

  13. #13
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Citation Envoyé par crjo
    Faudra envoyer ça vers la FAQ, en tout cas.
    C'est noté pcq effectivement c'est interressant

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    c'est clair que c'est interressant...

    Bon j'ai essayer et ca marche nickel

    Seul hic est ce que l'on peut prendre en compte dans la boucle la largeur de l'entête?

    Car si dans ma colonne il n'y a rien jai plus d'entete....

    Merci encore !!!

    (je sais faut pas abuser mais bon... vous zete zentil 8) )

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    j'ai rien dit!!!!

    j'ai fouiller dans la source http://www.developpez.net/forums/vie...163&highlight=

    et j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // il ne faut pas oublie la largeur de l'entête de la colonne !
        string header = cs.HeaderText;
        SizeF headerSize = g.MeasureString(
            header,
            dg.HeaderFont,
            500,
            sf);
    Merci encore les coupains!!!
    j'ai résolu pour de bon mon problème!!

    ++

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

Discussions similaires

  1. modifier la largeur d'une colonne datagrid
    Par TheCakeMaker dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/07/2009, 21h27
  2. Définir largeur colonne gridview
    Par tranath dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/09/2007, 14h46
  3. [C#][WinForm] Style d'un dataGrid + Style des colonnes
    Par empireevil dans le forum Windows Forms
    Réponses: 1
    Dernier message: 31/05/2007, 15h44
  4. largeur colonne excel après export
    Par scully2501 dans le forum Access
    Réponses: 6
    Dernier message: 18/06/2005, 10h52
  5. [C#] [WinForms] Formatage d'un DataGrid.
    Par Mictou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/07/2004, 18h39

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