Xml 如何使用C比较两个richtextbox文本#
我已经编写了一个逻辑来比较两个ricttext框的内容,但是输出的差异文本没有在预期的索引处突出显示。它先于预期指数开始。我在下面给出了我使用的逻辑Xml 如何使用C比较两个richtextbox文本#,xml,c#-3.0,Xml,C# 3.0,我已经编写了一个逻辑来比较两个ricttext框的内容,但是输出的差异文本没有在预期的索引处突出显示。它先于预期指数开始。我在下面给出了我使用的逻辑 private void CompareRichTextContents(RichTextBox target, RichTextBox dest) { string[] targetLines = target.Lines; string[] destLine = dest.Lines; L
private void CompareRichTextContents(RichTextBox target, RichTextBox dest)
{
string[] targetLines = target.Lines;
string[] destLine = dest.Lines;
List<string> result=targetLines.Except(destLine).ToList<string>();
foreach (string str in result)
{
int lineIndex=Array.IndexOf(targetLines, str);
int lineCount=0;
for (int index = 0; index < lineIndex; index++)
{
lineCount+=targetLines[index].Length;
}
target.SelectionBackColor = Color.Yellow;
target.SelectionColor = Color.Black;
target.SelectionStart = lineCount;
target.SelectionLength = str.Length;
}
}
private void CompareRichTextContents(RichTextBox目标,RichTextBox目标)
{
字符串[]targetLines=target.Lines;
字符串[]目标行=目标行;
列表结果=targetLines.Exception(destLine.ToList();
foreach(结果中的字符串str)
{
int lineIndex=Array.IndexOf(targetLines,str);
int lineCount=0;
对于(int index=0;index
谢谢,
Lokesh。查找可能存在问题的换行符查找可能存在问题的换行符您的方法是正确的,但是rich textbox只选择了一次,您必须添加1 按以下步骤进行: private int CompareRichTextContents(RichTextBox目标,RichTextBox目标) { int计数器=0; 字符串[]targetLines=target.Lines; 字符串[]目标行=目标行; 列表结果=targetLines.Exception(destLine.ToList(); foreach(结果中的字符串str) {
int lineIndex = Array.IndexOf(targetLines, str);
int lineCount = 0;
for (int index = 0; index < lineIndex; index++)
{
lineCount += targetLines[index].Length+1;
}
target.SelectionBackColor = Color.Yellow;
target.SelectionColor = Color.Black;
// target.Select(lineCount, str.Length);
target.SelectionStart = lineCount;
target.SelectionLength = str.Length;
counter++;
}
return counter;
}
intlineindex=Array.IndexOf(targetLines,str);
int lineCount=0;
对于(int index=0;index
现在在button click事件中,调用它的次数与选择的次数相同。虽然这是调用不必要的时间(写作时没有考虑太多),但每次都会选择下一次
private void button1_Click(object sender, EventArgs e)
{
int counter= CompareRichTextContents(this.richTextBox1Body, this.richTextBox2Body);
for (int i = 0; i < counter; i++)
CompareRichTextContents(this.richTextBox1Body, this.richTextBox2Body);
}
private void按钮1\u单击(对象发送者,事件参数e)
{
int counter=CompareRichTextContents(this.richttextbox1body,this.richttextbox2body);
对于(int i=0;i
您的方法是正确的,但是rich textbox只选择了一次,您必须添加1
按以下步骤进行:
private int CompareRichTextContents(RichTextBox目标,RichTextBox目标)
{
int计数器=0;
字符串[]targetLines=target.Lines;
字符串[]目标行=目标行;
列表结果=targetLines.Exception(destLine.ToList();
foreach(结果中的字符串str)
{
int lineIndex = Array.IndexOf(targetLines, str);
int lineCount = 0;
for (int index = 0; index < lineIndex; index++)
{
lineCount += targetLines[index].Length+1;
}
target.SelectionBackColor = Color.Yellow;
target.SelectionColor = Color.Black;
// target.Select(lineCount, str.Length);
target.SelectionStart = lineCount;
target.SelectionLength = str.Length;
counter++;
}
return counter;
}
intlineindex=Array.IndexOf(targetLines,str);
int lineCount=0;
对于(int index=0;index
现在在button click事件中,调用它的次数与选择的次数相同。虽然这是调用不必要的时间(写作时没有考虑太多),但每次都会选择下一次
private void button1_Click(object sender, EventArgs e)
{
int counter= CompareRichTextContents(this.richTextBox1Body, this.richTextBox2Body);
for (int i = 0; i < counter; i++)
CompareRichTextContents(this.richTextBox1Body, this.richTextBox2Body);
}
private void按钮1\u单击(对象发送者,事件参数e)
{
int counter=CompareRichTextContents(this.richttextbox1body,this.richttextbox2body);
对于(int i=0;i
它到底突出显示哪一行?例如,我有以下几行目标零件:DestPart应该从维度突出显示该行,但它从上一行的“/>”开始突出显示它到底突出显示哪一行?例如,我有以下几行目标部分:DestPart应该从维度突出显示该行,但它从上一行的“/>”开始。我希望richtext行中的所有内容都读取为字符串,并且当该行转换为字符数组时,其长度相同。我不明白你在这部分中所说的换行是什么意思。如果是,请告诉我如何查找换行。请尝试lineCount+=targetLines[index]。Length+2;我希望richtext行中的所有内容都被读取为字符串,并且当该行转换为char数组时,其长度是相同的。我不明白你在这部分中所说的换行是什么意思。如果是,请告诉我如何查找换行。请尝试lineCount+=targetLines[index]。Length+2;