edwinzap
Messages postés159Date d'inscriptionsamedi 29 septembre 2012StatutMembreDernière intervention21 juin 2016
-
Modifié par Whismeril le 29/04/2015 à 20:21
edwinzap
Messages postés159Date d'inscriptionsamedi 29 septembre 2012StatutMembreDernière intervention21 juin 2016
-
29 avril 2015 à 21:51
Bonjour,
Je voudrais changer le style de certaine cellule d'un datagridview qui se trouve sur un autre form. Le principe: j'ai un premier form avec un bouton qui affiche le 2ème form ainsi qu'une textbox. Je voudrais changer toutes les cellules qui contiennent le contenu de la textbox dans le datagridview du second form. Voici mon code:
public void AffichageLettres(string _lettre)
{
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count - 1; j++)
{
DataGridViewCell cell = dataGridView1.Rows[i].Cells[j];
if (cell.Value.ToString() == lettre.ToString())
{
cell.Style.ForeColor = Color.Red;
cell.Style.BackColor = Color.Green;
}
}
}
}
J'appelle cette méthode comme ceci:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
Form2 form2 = new Form2(T);
if (e.KeyData == Keys.Enter)
{
form2.AffichageLettres(textBox1.Text.ToUpper());
}
}
(Le T est juste un tableau de valeurs me permettant de remplir mon datagridview)
J'ai actuellemet besoin de réouvrir le 2ème form pour que le style s'applique !!!
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 29 avril 2015 à 20:27
Bonsoir,
dans un premier temps, pour remplir un datagridview, le binding souvent c'est plus simple.
Pour ton problème, je ne sais pas si ton problème vient de là (voir le commentaire)
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
Form2 form2 = new Form2(T);//ici tu crées une NOUVELLE instance de Form2, pas celle qui est affichée, et comme tu ne mets pas de show, elle est chargée quelque part en RAM.
if (e.KeyData == Keys.Enter)
{
form2.AffichageLettres(textBox1.Text.ToUpper());
}
}
Pour ce point, qui est peut être la source de ton problème, il faut que ta variable qui pointe sur l'instance de Form2 soit déclarée avec une portée qui englobe cette méthode ET ne pas en redéclarer une ici.
edwinzap
Messages postés159Date d'inscriptionsamedi 29 septembre 2012StatutMembreDernière intervention21 juin 20161 29 avril 2015 à 21:18
Merci, je venais justement de trouver ma réponse après plusieurs heures de recherche et effectivement, c'était simplement la portée de la variable qui n'était pas bonne !
Concernant le binding, l'ennui c'est que je colore différement chaque cellule en fonction de son contenu. Devrais-je le faire après?
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624
>
edwinzap
Messages postés159Date d'inscriptionsamedi 29 septembre 2012StatutMembreDernière intervention21 juin 2016 29 avril 2015 à 21:49
Ben là je te dirais bien de passer en WPF, ça le ferait tout seul....
edwinzap
Messages postés159Date d'inscriptionsamedi 29 septembre 2012StatutMembreDernière intervention21 juin 20161 29 avril 2015 à 21:51
29 avril 2015 à 21:18
Concernant le binding, l'ennui c'est que je colore différement chaque cellule en fonction de son contenu. Devrais-je le faire après?
29 avril 2015 à 21:49
29 avril 2015 à 21:51