C# 如何比较dataGridView中的两行并突出显示不同的单元格?
如何比较dataGridView中的两个选定行? 1.-我需要知道如何检测所选的两行 2.-比较两个选定行 3.-突出“单元格”的差异 我试过了,但不幸的是我迷路了C# 如何比较dataGridView中的两行并突出显示不同的单元格?,c#,datagridview,C#,Datagridview,如何比较dataGridView中的两个选定行? 1.-我需要知道如何检测所选的两行 2.-比较两个选定行 3.-突出“单元格”的差异 我试过了,但不幸的是我迷路了 DataTable src1 = dataGridView1.DataSource as DataTable; //THIS IS PROBABLY NOT NEEDED DataTable src2 = dataGridView1.DataSource as DataTable; int index1 =
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;
}
}
}
DataTable src1=dataGridView1.DataSource作为DataTable//这可能是不必要的
DataTable src2=dataGridView1.DataSource作为DataTable;
int index1=0;
对于(int i=0;i
实际上你的代码不好,我会回答你的问题:
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;
}
}
}
实际上你的代码不好,我会回答你的问题: 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;
}
}
}
实际上你的代码不好,我会回答你的问题: 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;
}
}
}
实际上你的代码不好,我会回答你的问题: 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;
}
}
}
您的代码将行与自身进行比较,这永远不会为假。您的代码将行与自身进行比较,这永远不会为假。您的代码将行与自身进行比较,这永远不会为假。您的代码将行与自身进行比较,这永远不会为假。非常感谢您。。。。我在这里兜圈子。我刚刚把一些小的小写改为大写,效果很好!但它仅高亮显示第二个选定行。。。我怎样才能让它也高亮显示第一个选中的行?很抱歉,您应该在第二行中使用I+1:dataGridView1.SelectedRows.Rows[I].Cells[j].Style.BackColor=Color.Red;dataGridView1.SelectedRows.Rows[i+1]。单元格[j]。Style.BackColor=Color.Red;非常感谢你。。。。我在这里兜圈子。我刚刚把一些小的小写改为大写,效果很好!但它仅高亮显示第二个选定行。。。我怎样才能让它也高亮显示第一个选中的行?很抱歉,您应该在第二行中使用I+1:dataGridView1.SelectedRows.Rows[I].Cells[j].Style.BackColor=Color.Red;dataGridView1.SelectedRows.Rows[i+1]。单元格[j]。Style.BackColor=Color.Red;非常感谢你。。。。我在这里兜圈子。我刚刚把一些小的小写改为大写,效果很好!但它仅高亮显示第二个选定行。。。我怎样才能让它也高亮显示第一个选中的行?很抱歉,您应该在第二行中使用I+1:dataGridView1.SelectedRows.Rows[I].Cells[j].Style.BackColor=Color.Red;dataGridView1.SelectedRows.Rows[i+1]。单元格[j]。Style.BackColor=Color.Red;非常感谢你。。。。我在这里兜圈子。我刚刚把一些小的小写改为大写,效果很好!但它仅高亮显示第二个选定行。。。我怎样才能让它也高亮显示第一个选中的行?很抱歉,您应该在第二行中使用I+1:dataGridView1.SelectedRows.Rows[I].Cells[j].Style.BackColor=Color.Red;dataGridView1.SelectedRows.Rows[i+1]。单元格[j]。Style.BackColor=Color.Red;