我有一个允许用户输入文字的程序,它会突出显示任何重复的单词。它已经将重复的单词添加到一个列表,将所有单词添加到另一个列表我希望程序打印出单词,如果使用重复单词,则突出显示它。
我尝试使用outputBox.Find(repeatList[i])
循环,但这只找到文本中使用的第一个单词。我还尝试标记输入的最后一个字母的当前数字,选择该点,找到word.Length后面的坐标,然后更改颜色,这不起作用。
for (int h = 0; h < repeatList.Count; h++)
{
for (int c = 0; c < repeatList.Count; c++)
{
outputBox.Find(repeatList[h]);
outputBox.SelectionColor = Color.Red;
}
}
在代码的这一点上,outputBox已经包含了用户输入,我只想知道如何比较单词并选择它们进行着色。我刚刚开始Winforms并且只编写了几周,所以我很抱歉 - 我已经查看了其他答案但是无法实现它们。提前感谢您的回复。
编辑:我想补充一点,我首选的文字着色方法是打印每个单词,这是我的初衷,因为我更习惯于控制应用程序,我可以改变颜色并打印更多。如果这种方法比事后检查更容易,我会发现这样做。答案 0 :(得分:0)
我会使用起始索引并保留它的副本。
int startFrom = 0
...
startFrom = outputBox.Find(repeatList[h], startFrom)
然后您可以使用&#39; startFrom&#39;索引与文本字长度选择文本。
以下是一个例子:
var findText = "test";
int index = 0;
do
{
index = richTextBox1.Find(findText, index, RichTextBoxFinds.WholeWord);
if (index > -1)
{
richTextBox1.Select(index, findText.Length);
richTextBox1.SelectionColor = Color.Red;
index++;
}
} while (index > -1);