如何比较数据网格视图中的 2 行并突出显示不同的单元格
本文关键字:显示 单元格 比较 何比较 数据 视图 网格 数据网 | 更新日期: 2023-09-27 18:35:43
如何比较数据网格视图中的两个选定行?1.- 我需要知道如何检测两个选定的行2.- 比较两个选定的行3.- 突出显示差异"单元格"
我已经试过了,但不幸的是我迷路了.....
DataTable src1 = dataGridView1.DataSource as DataTable; //THIS IS PROBABLY NOT NEEDED
DataTable src2 = dataGridView1.DataSource as DataTable;
int index1 = 0;
for (int i = 0; i < src1.Rows.Count; i++)
{
var row1 = src1.Rows[i].ItemArray;
var row2 = src2.Rows[i].ItemArray;
for (int j = 0; j < row1.Length; j++)
{
if (!row1[j].ToString().Equals(row2[j].ToString()))
{
dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.Red;
dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.Red;
}
}
}
其实你的代码不好,我会回答你的问题:
1.- 我需要知道如何检测两个选定的行
dataGridView1.SelectedRows
2.-比较两个选定的行,它应该如下所示:
for (int i = 0; i < dataGridView1.SelectedRows.Count-1; i++)
{
for (int j = 0; j < dataGridView1.SelectedRows.rows[i].Cells.Count; j++)
{
if(dataGridView1.SelectedRows.rows[i].Cells[j].value.Equals(dataGridView1.SelectedRows.rows[i+1].Cells[j].value))
{
dataGridView1.SelectedRows.Rows[i].Cells[j].Style.BackColor = Color.Red;
dataGridView1.SelectedRows.Rows[i+1].Cells[j].Style.BackColor = Color.Red;
}
}
}
3.- 突出显示差异"单元格"
dataGridView1.SelectedRows.Rows[i].Cells[j].Style.BackColor = Color.Red;
dataGridView1.SelectedRows.Rows[i+1].Cells[j].Style.BackColor = Color.Red;