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
24
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