Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何比较dataGridView中的两行并突出显示不同的单元格?_C#_Datagridview - Fatal编程技术网

C# 如何比较dataGridView中的两行并突出显示不同的单元格?

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 =

如何比较dataGridView中的两个选定行? 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;
                }
            }
        }
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;