gpt4 book ai didi

c# - 比较两个 DataGridView 之间的单元格

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:58 25 4
gpt4 key购买 nike

美好的一天,

我想比较两个 DataGridview 之间的单元格,并标记源 DataGridView(下面的 GridView1)中不同的相应单元格。目前,我只能比较行。我是否可以按各个单元格比较 DataGridViews 单元格并仅标记有差异的单元格?

举个例子:表格1:3 6 8

表 2:2 6 5

private void button5_Click_1(object sender, EventArgs e)
{
DataTable src1 = dataGridView1.DataSource as DataTable;
DataTable src2 = dataGridView2.DataSource as DataTable;
int index1 = 0;

foreach (DataRow row1 in src1.Rows)
{
foreach (DataRow row2 in src2.Rows)
{
int index2 = 0;
bool duplicateRow = true;
for (int cellIndex = 0; cellIndex < row1.ItemArray.Count(); cellIndex++)
{
if (!row1.ItemArray[cellIndex].Equals(row2.ItemArray[cellIndex].ToString()))
{
duplicateRow = true;
break;
}
}

if (duplicateRow)
{
dataGridView1.Rows[index1].DefaultCellStyle.ForeColor = Color.Red;
}

index2++;
}
index1++;
}
}

非常感谢。

最佳答案

DataTable src1 = dataGridView1.DataSource as DataTable;
DataTable src2 = dataGridView2.DataSource as DataTable;

如果两个gridview的列数和行数相同:

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;
dataGridView2.Rows[i].Cells[j].Style.BackColor = Color.Red;
}
}
}

关于c# - 比较两个 DataGridView 之间的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22227847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com