【问题标题】:how to compare 2 rows in a dataGridView and highlight the different cells?如何比较 dataGridView 中的 2 行并突出显示不同的单元格?
【发布时间】:2014-12-31 14:19:01
【问题描述】:

如何比较 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;
                }
            }
        }

【问题讨论】:

  • 您的代码将行与自身进行比较,这永远不会是错误的。

标签: c# datagridview


【解决方案1】:

其实你的代码不好我会回答你的问题:

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;

【讨论】:

  • 非常感谢......我在这里转圈。我只是将一些小的小写改正为大写更正,它可以工作!它只是突出显示第二个选定的行......我怎样才能让它也突出显示第一个选定的行?
  • 对不起,你应该在第二行使用 i+1 : dataGridView1.SelectedRows.Rows[i].Cells[j].Style.BackColor = Color.Red; dataGridView1.SelectedRows.Rows[i+1].Cells[j].Style.BackColor = Color.Red;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 2012-03-24
  • 2014-10-28
  • 2018-08-08
  • 1970-01-01
相关资源
最近更新 更多