Clignotement des lignes d'une Grille application winForms c#

Hoffmannew Messages postés 7 Date d'inscription vendredi 24 janvier 2014 Statut Membre Dernière intervention 31 janvier 2014 - Modifié par Hoffmannew le 26/01/2014 à 15:58
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 27 janv. 2014 à 14:04
Bonjour tout le monde ,
je voudrais faire genre d'une signalisation dans la grille faire clignoté
la ligne rouge voilà l'evenement :

private void dataGridViewX1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
 
                if (DateTime.Parse(dataGridViewX1.Rows[e.RowIndex].Cells[8].Value.ToString()).AddMonths(-1).Month == DateTime.Now.Month)
                {
                    e.CellStyle.BackColor = System.Drawing.Color.Red;
                }
 
 
 
        }

les lignes de la grille qui ont cette condition devront clignoté pas seulement la couleur rouge jusqu'a maintenant j'ai seulement une couleur rouge
qui s'affiche
donc quesque je dois ecrire dans cette evenement du controle Timer
private void timer1_Tick(object sender, EventArgs e)
        {
           //j'ai tatoné sur cette condition mais je pense pas qu'elle marche
if (this.dataGridViewX1.RowsDefaultCellStyle.ForeColor.Equals( System.Drawing.Color.Red))
            {
this.dataGridViewX1.RowsDefaultCellStyle.ForeColor.Equals( System.Drawing.Color.White)
            }
 
        }


Mercii

1 réponse

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
27 janv. 2014 à 14:04
Salut,


Crées une liste pour stocker les lignes a faire clignoter :

private List<int> _listRowIndex = new List<int>();



Fait clignoter les lignes 2 et 4 par exemple,

timer1.Interval = 750;
timer1.Enabled = true;

_listRowIndex.Add(2);
 _listRowIndex.Add(4);


private void timer1_Tick(object sender, EventArgs e)
{
    if (_listRowIndex.Count > 0)
    {
        foreach (int ind in _listRowIndex)
        {
            foreach (DataGridViewCell c in dataGridView1.Rows[ind].Cells)
            {
                if (c.Style.BackColor != Color.Red)
                    c.Style.BackColor = Color.Red;
                else
                    c.Style.BackColor = Color.White;
            }
        }
    }
}



Supprime dynamiquement une ligne de la liste, elle s'arrete de clignoter

_listRowIndex.Remove(2);



A toi de remplir/supprimer la liste dans l'évènement que tu veux.

Bye...
0
Rejoignez-nous