Salut,
un coup de pouce (dans l'oeil !)
en fait il manque pas mal d'informations alors je balance juste ce qui peut porter a confusion
dans le cas ou la ligne est impaire, tu passes le fond de la ligne FORCEMENT en
Color.FromArgb(176, 128, 106)
(ben ouai, t'as écrit la ligne deux fois, regarde bien)
ensuite, si le texte contient "COMM" (forcément en majuscule, utilises TonTexte.ToUpper().Contains("COMM") pour t'assurer que c'est en majuscule) tu colories le SubItems[1] en rouge.
As-tu deux colonnes ?, si non utilise SubItems[0] (je dis ca car je me suis déja fait avoir avec ces sal$%! de SubItems)
si la ligne est paire, tu passes le fond ET le texte en
Color.FromArgb(192, 218, 82)
(pas terrible pour lire ^^) , toujours sur le deuxième SubItem.
as-tu bien mis des points d'arrêt dans ton code pour voir s'il passait par le coloriage ?
en plus, ton code est un peu galère à relire , ca :
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 30
|
public void changercouleur()
{
foreach (ListViewItem TmpItem in this.Items)
{
//j'ai pas trouvé la fonction Odd() ^^
//mais ca revient au même
if (TmpItem.Index % 2 == 0)
{
TmpItem.BackColor = Color.FromArgb(176, 128, 106);
if (TmpItem.SubItems[1].Text.ToUpper().Contains("COMM"))
{
TmpItem.SubItems[1].ForeColor = Color.Red;
MessageBox.Show(TmpItem.SubItems[1].ForeColor.ToString());
TmpItem.SubItems[1].Text = "coucou";
}
}
else
{
TmpItem.BackColor = Color.FromArgb(192, 218, 82);
if (TmpItem.SubItems[1].Text.ToUpper().Contains("COMM"))
{
TmpItem.SubItems[1].ForeColor = Color.FromArgb(192, 218, 82);
}
}
}
} |
me parait plus clair
Partager