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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| private void Form1_Load(object sender, EventArgs e)
{
//Remplir DGV1
dataGridView1.Rows.Add("PS0112C", "EN", "Blablabla");
dataGridView1.Rows.Add("PS0112C", "FR", "Blablabla");
dataGridView1.Rows.Add("PS0112E", "FR", "Blablabla");
dataGridView1.Rows.Add("PS0112E", "DE", "Blablabla");
//Remplir DGV2
dataGridView2.Rows.Add("PS0112C", "EN", "Blablabla");
dataGridView2.Rows.Add("PS0112C", "FR", "Blablabla");
dataGridView2.Rows.Add("PS0112C", "DE", "Blablabla");
dataGridView2.Rows.Add("PS0112D", "FR", "Blablabla");
dataGridView2.Rows.Add("PS0112D", "DE", "Blablabla");
//Changer BackColors
SetBackColor(dataGridView1, dataGridView2);
}
private void SetBackColor(DataGridView dgv1, DataGridView dgv2)
{
var rows1 = dgv1.Rows.Cast<DataGridViewRow>();
var rows2 = dgv2.Rows.Cast<DataGridViewRow>();
//tout les messages en rouge par defaut
foreach(var row in rows1.Concat(rows2))
row.DefaultCellStyle.BackColor = Color.Red;
//recherche les messages du dgv1 qui correspondent à des messages du dgv2
//et les met en blanc
foreach (var row1 in rows1)
foreach (var row2 in rows2)
if (AreSameMessages(row1, row2))
{
row1.DefaultCellStyle.BackColor = Color.White;
row2.DefaultCellStyle.BackColor = Color.White;
}
}
private static bool AreSameMessages(DataGridViewRow x, DataGridViewRow y)
{
bool sameBusinessRuleCode = x.Cells[0].Value == y.Cells[0].Value;
bool sameDisplayLanguageID = x.Cells[1].Value == y.Cells[1].Value;
return sameBusinessRuleCode && sameDisplayLanguageID; //doit avoir le meme BusinessRuleCode et le meme DisplayLanguageID
} |
Partager