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#] colorier cellule vide dataGridView WinForm


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Points : 100
    Points
    100
    Par défaut [C#] colorier cellule vide dataGridView WinForm
    Bonjour,

    J'aimerais test si j'ai des cellules vides sur une ligne, et si y en a les colorer.
    J'essai déjà de tester si j'ai celulles vides.
    J'ai fait comme ceci:

    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
    17
    18
                int columnAjouter = (dgvJoueur.ColumnCount) - 1;
                int columnSuppr = (dgvJoueur.ColumnCount) - 2;
     
     
                DataGridViewCell myViewCell = dgvJoueur.CurrentCell;
     
                for (int ligne = 0; ligne < dgvJoueur.RowCount; ligne++ )
                {
                    for (int celulle = 0; celulle < dgvJoueur.CurrentRow.Cells.Count; celulle++)
                    {
                        if (myViewCell == dgvJoueur[columnAjouter, ligne])
                        {
                            string maCellule = (string)dgvJoueur.CurrentRow.Cells[celulle].Value;
                            if (maCellule.CompareTo(DBNull.Value) == 0)
                            {
                                MessageBox.Show("test");
                            }
                        }
    Sauve, que ca ne marche pas.
    Cordialement

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    "DBNull.Value" correspond à une value vide dans un DataSet
    Dans un datagridview, ca devient "null".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (dgvJoueur.CurrentRow.Cells[celulle].Value == null)  MessageBox.Show(...
    Pour les colorier, modifie la backGround Color dans l'event CellFormatting
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Ajouter" && e.Value == null)
           e.CellStyle.BackColor = Color.Pink;
    }
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Points : 100
    Points
    100
    Par défaut
    Merci à toi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                   if (dgvJoueur.CurrentRow.Cells[celulle].Value != null)
                            {
                                MessageBox.Show("Ajouter");
                            }
                            else
                            {
                                MessageBox.Show("veuillez remplir toutes les cellules");
                            }
                        }
    Sauve que l'utilisateur est un peu bête Si y rentre rien dans la lignes ou que 2-3 infos, sa va afficher 50 fois veuillez remplir toutes les cellules. Y a pas un moyen que sa affiche le message d'erreur qu'une fois.


    Pour la couleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
               if (this.dgvJoueur.Columns[e.ColumnIndex].HeaderText == "Nom" && e.Value == null)
                    e.CellStyle.BackColor = Color.IndianRed;
               if (this.dgvJoueur.Columns[e.ColumnIndex].HeaderText == "Prenom" && e.Value == null)
                   e.CellStyle.BackColor = Color.IndianRed;
               if (this.dgvJoueur.Columns[e.ColumnIndex].HeaderText == "Tel" && e.Value == null)
                   e.CellStyle.BackColor = Color.IndianRed; //etc...
    Le problème est que si l'utilisateur écrit dans Nom les autres colonnes vide ne sont plus coloré.
    cordialement

Discussions similaires

  1. [Débutant] cellule vide dataGridView
    Par zyhou dans le forum C#
    Réponses: 1
    Dernier message: 20/03/2012, 17h30
  2. Selectionné et colorié les cellules vides
    Par acine dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/01/2012, 19h00
  3. Comment savoir si cellule vide DataGridView ?
    Par savoir dans le forum VB.NET
    Réponses: 4
    Dernier message: 16/01/2011, 16h40
  4. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42
  5. [XSL-FO] Table avec cellule vide
    Par JustAGphy dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/05/2004, 14h11

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