Changer couleur cellule datagridview

Résolu
sylvesterseni - Modifié le 3 juil. 2017 à 15:21
 sylvesterseni - 3 juil. 2017 à 17:59
Bonjour,
je fais recours a vous car je suis un peu coincé sur un problème
Je vous explique comment je procède pour récupérer la couleur et son nom pour enregistrer
dans la base de données
j'ai deux textbox qui lorsqu'on clique a l interieur font apparaitre un colordialog


 private void tb_couleurFond_MouseClick(object sender, MouseEventArgs e)
  {
      if (colorDialog1.ShowDialog() == DialogResult.OK)
        {
               // ici j'affecte la couleur choisie au background du textbox et son nom

                tb_couleurFond.BackColor = colorDialog1.Color;
                tb_couleurFond.Text = colorDialog1.Color.Name;
                

        }
   }




private void tb_couleurTexte_MouseClick(object sender, MouseEventArgs e)
   {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
        {

                tb_couleurTexte.BackColor = colorDialog1.Color;
                tb_couleurTexte.Text = colorDialog1.Color.Name;
               
        }
   }  




// je parcours le datagridview 

for (int i = 0; i < dgListeGenreRti.RowCount; i++)
            {
                for (int j = 0; j < dgListeGenreRti.Columns.Count; j++)
                {
                    /*
                        recuperation des  valeurs de chaque cellule du datagridview


*/
                    string valeur = dgListeGenreRti.Rows[i].Cells[j].Value.ToString(); 

                    // on recupere le type de la valeur     
                    System.Type typeValeurCellule = dgListeGenreRti.Rows[i].Cells[j].ValueType;  
                   
                    //j'essaie maintenant d'affecter la couleur au background de la cellule en convertissant le nom 
                    // de la couleur en la couleur elle meme

                    if (dgListeGenreRti.Rows[i].Cells[j].ValueType.Name is System.String)
                    {
                       dgListeGenreRti.DefaultCellStyle.BackColor= System.Drawing.Color.FromName(valeur);
                                                
                    }

                }

            }

1 réponse

sylvesterseni
3 juil. 2017 à 17:59
Color GetColor(string stringForm)
        {
            Color myColor = new Color();
            
            if(!stringForm.Any(char.IsDigit))
            {
                myColor = Color.FromName(stringForm);

            }
            else
            {
                try
                {
                    myColor = System.Drawing.ColorTranslator.FromHtml("#" + stringForm);
                }
                catch { }
            }
            return myColor;
        }




private void dgListeGenreRti_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if(e.Value!=null && !e.FormattingApplied )
                dgListeGenreRti.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor=GetColor(e.Value.ToString());
             
        }


la solution trouvée pour resoudre le probleme au cas ou une personne se retrouvait dans ce genre de cas

Merci Max!
1
Rejoignez-nous