Changer couleur cellule datagridview [Résolu]

sylvesterseni - 3 juil. 2017 à 15:18 - Dernière réponse :  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);
                                                
                    }

                }

            }
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
sylvesterseni - 3 juil. 2017 à 17:59
1
Merci
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!

Merci sylvesterseni 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de sylvesterseni

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.