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#]automatiser la largeur d'un datagridview


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut [C#]automatiser la largeur d'un datagridview
    salut,

    j'ai une boucle qui me remplit un datagridview selon 2 conditions.
    Que ce ce soit l'une ou l'autre, il n'y a pas le même nombre de colonne.

    Pour que ca fasse plus propre, je souhaite que le datagrid s'adapte à la largeur totale des colonnes.

    grdview.Width = grdview.RowHeadersWidth, mais dans ce cas il ne fait que la largeur d'une seule colonne.

    Y a -t-il une propriété qui me fasse cela automatiquement avant que je passe par plusieurs lignes de codes ?

    Merci

  2. #2
    Membre confirmé Avatar de Mast3rMind
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 226
    Par défaut
    Hum, essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut
    salut,

    merci pour la réponse, mais ca marche pas.
    Le resultat est assez bizarre, j'obtiens un datagrid d'environ la largeur d'une colonne remplit de cellule miniature...

    Une autre soluce??

    sinon je pensais récuperer la largeur d'une colonne et pultiplier par leur nombre pour avoir une largeur totale, mais bon je suis sur qu'il doit exister une formule toute faite.

    Merci encore

  4. #4
    Membre confirmé Avatar de Mast3rMind
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 226
    Par défaut
    Ben je fais exactement la même chose que toi: j'ai un tableau qui dépend d'une condition et qui contient un nombre différent de colonnes dépendemment de la condition. Pour moi tout fonctionne à la perfection. Voici mon code:

    Code C# : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    // Constructeur
    public GridControl()
            {
                colInclude = new DataGridViewCheckBoxColumn(false);
                colDate = new DataGridViewTextBoxColumn();
                colHour = new DataGridViewTextBoxColumn();
                colMX = new DataGridViewTextBoxColumn();
     
                SetProperties();
            }
     
    public void SetProperties()
            {
                this.AllowUserToAddRows = false;
                this.AllowUserToDeleteRows = false;
                this.AllowUserToResizeColumns = false;
                this.AllowUserToResizeRows = false;
                this.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
                this.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
                this.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                this.Dock = System.Windows.Forms.DockStyle.Fill;
                this.ImeMode = System.Windows.Forms.ImeMode.NoControl;
                this.Location = new System.Drawing.Point(0, 0);
                this.Name = "NumValuesDataGrid";
                this.ReadOnly = true;
                this.RowHeadersVisible = false;
                this.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
                this.RowTemplate.ReadOnly = true;
                this.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
                this.ShowCellErrors = false;
                this.ShowCellToolTips = false;
                this.ShowEditingIcon = false;
                this.ShowRowErrors = false;
                this.Size = new System.Drawing.Size(434, 118);
                this.TabIndex = 0;
            }
     
    // Ensuite ajout des colonnes
    public void SetHeaders()
            {
                this.Columns.Clear();
     
                if (Condition1)
                {
                    this.colInclude.Name = "colInclude";
                    this.colInclude.HeaderText = "Inclure";
                    this.colInclude.ReadOnly = true;
                    this.colInclude.MinimumWidth = 50;
                    this.colInclude.Width = 50;
                    this.colInclude.DisplayIndex = 0;
     
                    this.colDate.Name = "colDate";
                    this.colDate.HeaderText = "Date";
                    this.colDate.ReadOnly = true;
                    this.colDate.MinimumWidth = 100;
                    this.colDate.Width = 100;
                    this.colDate.DisplayIndex = 1;
     
                    this.colHour.Name = "colHour";
                    this.colHour.HeaderText = "Heure";
                    this.colHour.ReadOnly = true;
                    this.colHour.MinimumWidth = 50;
                    this.colHour.Width = 50;
                    this.colHour.DisplayIndex = 2;        
     
                    base.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
                                        colInclude,
                                        colDate,
                                        colHour,
                                        });
                }
                else // Condition 2
                {
                    this.colInclude.Name = "colInclude";
                    this.colInclude.HeaderText = "Inclure";
                    this.colInclude.ReadOnly = true;
                    this.colInclude.MinimumWidth = 50;
                    this.colInclude.Width = 50;
                    this.colInclude.DisplayIndex = 0;
     
                    this.colMW.Name = "colMW";
                    this.colMW.HeaderText = "MW";
                    this.colMW.ReadOnly = true;
                    this.colMW.MinimumWidth = 50;
                    this.colMW.Width = 77;
                    this.colMW.DisplayIndex = 3;
     
                    base.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
                                        colInclude,
                                        colMW});
                }
            }

    En espérant que cela puisse t'aider.

Discussions similaires

  1. Largeur cellule datagridview à 1 pixel (VB.NET)
    Par Malagan dans le forum VB.NET
    Réponses: 0
    Dernier message: 24/09/2012, 17h28
  2. Réponses: 1
    Dernier message: 13/08/2012, 14h08
  3. [Débutant] DataGridView Ajustement du contenu de la cellule à la largeur de la colonne
    Par Au2laDeNosReves dans le forum C#
    Réponses: 5
    Dernier message: 19/07/2011, 16h18
  4. datagridview : largeur de colonne et scrollbars
    Par Kanetsugu dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/05/2011, 14h57
  5. Réponses: 3
    Dernier message: 02/10/2006, 19h33

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