突出显示winform上字符串之间的差异

时间:2015-09-24 15:57:23

标签: c# string winforms datagridview comparison

我希望有人可以帮助我,这个问题不会太模糊。

我正在尝试确定一种方法,我可以突出显示winform中两个文本字符串之间的差异。

我在数据网格的一列中有原始字符串,在第二列中有要比较的字符串。我想要的是突出显示数据网格视图本身中比较字符串的不同之处。

示例:

Thanks for the hep

Thanks for the help!!

其中l和两个!将突出显示

我尝试了以下内容(在此Previous Post中向Bouam求助):

for (int i = 0; i < TextProcessingResults.RowCount; i++)
{
    if (TextProcessingResults.Rows[i].Cells[1].Value != null)
    {
        if ((string)TextProcessingResults.Rows[i].Cells[1].Value != (string)TextProcessingResults.Rows[i].Cells[2].Value)
        {
            TextProcessingResults.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
        }
    }
}

但这只会突出显示哪些行不同于字符级别。我是所有这一切的新手,这是一个疯狂的努力吗?

有人可以帮助或指出我有用的资源吗?

1 个答案:

答案 0 :(得分:2)

您可以根据DatGridViewColumn创建新的RichTextBox,然后使用新的富文本列突出显示富文本中的差异。

这可能会对您有所帮助:

以下是基于此的输出:

enter image description here

您可以应用所需的算法来比较差异的字符串与列,并使用此DataGridViewRichTextBoxColumn突出显示差异。

要详细了解如何创建自定义datagridview列类型,您可以查看Build a Custom NumericUpDown Cell and Column for the DataGridView Control