Précédent   Forum du club des développeurs et IT Pro > Dotnet > Développement Windows > Windows Forms
Windows Forms Forum d'entraide sur le développement Windows Forms & Applications Windows. Avant de poster -> Articles Windows Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/11/2012, 12h59   #1
sbouilland
Invité de passage
 
Homme Stéphane Bouilland
Ingénieur Biomédical
Inscription : 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);
 
        }
sbouilland est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 00h08   #2
Graffito
Expert Confirmé Sénior
 
Avatar de Graffito
 
Inscription : janvier 2006
Messages : 5 390
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 5 390
Points : 6 034
Points : 6 034
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
Graffito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 22h24   #3
ElTotor
Membre confirmé
 
Homme François DORIN
Chef de Projet
Inscription : décembre 2012
Messages : 104
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 : 104
Points : 226
Points : 226
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.
ElTotor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 11h52   #4
sbouilland
Invité de passage
 
Homme Stéphane Bouilland
Ingénieur Biomédical
Inscription : 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
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.
sbouilland est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h36.


 
 
 
 
Partenaires

Hébergement Web