Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Homme Profil pro Stéphane Bouilland
    Ingénieur Biomédical
    Inscrit en
    octobre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Nom : Homme Stéphane Bouilland
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur Biomédical
    Secteur : Santé

    Informations forums :
    Inscription : octobre 2012
    Messages : 19
    Points : 4
    Points
    4

    Par défaut soucis avec DataGridView

    Bonjour,

    J'ai fait un datagridview alimenté par un datatable pour afficher un tableau type feuille de donnée excel dans une fenetre. Ca fonctionne, sauf pour les lignes mises en commentaire et je ne comprends pas pourquoi.

    1) les lignes en commentaires 1 sont destinées à masquer deux colonnes, mais si je les laisse, j'ai une fenetre avec une croix rouge dedans.

    2) Dans le commentaire 2, il s'agit de modifier la cosmétique des lignes, mais le nombre de ligne du datagridview est toujours à zéro (dg.Rows.Count) alors que j'ai bien n lignes d'affichées et n lignes dans mon datatable...

    Voilà, d'avance merci pour votre aide !

    Code :
    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
     
            private void FormModifSuppr_Paint(object sender, PaintEventArgs e)
            {
                DataGridView dg = new DataGridView();
     
                dg.DataSource = ClassDataTable.LeTableauHorairesPresence;
                dg.Size = new Size(1500, 800);
     
                dg.AllowUserToAddRows = false;
                dg.AllowUserToDeleteRows = true;
     
                dg.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
                dg.AutoResizeColumns();
     
                /* Commentaire 1
                dg.Columns["ModuleDepart"].Visible = false;
                dg.Columns["CouleurIntervenant"].Visible = false;
                */
     
                /* Commentaire 2
                for (int i = 0; i < dg.Rows.Count; i++) 
                {
                   dg.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
                }
                */
     
                this.Controls.Add(dg);
     
            }

  2. #2
    Expert Confirmé Sénior Avatar de Graffito
    Inscrit en
    janvier 2006
    Messages
    5 820
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 820
    Points : 7 526
    Points
    7 526

    Par défaut

    Pour le commentaire 1 : d'une façon générale, ces modifications ne doivent pas être faites dans l'event Paint.

    Idem pour le commentaire 2, en sachant que si l'on veut afficher des BackColor variables suivant le contenu de la ligne ou de la cellule, on utilisera l'event CellFormatting
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre confirmé
    Homme Profil pro François DORIN
    Chef de Projet
    Inscrit en
    décembre 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Nom : Homme François DORIN
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de Projet
    Secteur : Associations - ONG

    Informations forums :
    Inscription : décembre 2012
    Messages : 106
    Points : 227
    Points
    227

    Par défaut

    Bonsoir,

    Point 1 :
    Les colonnes sont a priori générées automatiquement. Es-tu sur du nom de tes colonnes ?

    Point 2 :
    Une source possible du problème est qu'à chaque événement Paint, tu créés une nouvelle DataGridView que tu affectes à ton control. Comme souligné par Graffito, commence par supprimer toutes ces actions de la gestion de l'événement Paint (Paint = dessin, et non initialisation puis dessin), et créé et initialise ton DataGridView en dehors.

  4. #4
    Invité de passage
    Homme Profil pro Stéphane Bouilland
    Ingénieur Biomédical
    Inscrit en
    octobre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Nom : Homme Stéphane Bouilland
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur Biomédical
    Secteur : Santé

    Informations forums :
    Inscription : octobre 2012
    Messages : 19
    Points : 4
    Points
    4

    Par défaut

    Merci beaucoup, je vais faire ces modifs... Je me suis également aperçu que si je mets la ligne "this.Controls.Add(dg);" avant les parties en commentaire, çà marche.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •