【发布时间】:2019-10-03 03:16:55
【问题描述】:
richTextBox1 包含文本 我单击一个单词,控制台会为我显示该单词,并突出显示/选择我单击的单词。
为此,我保留了我单击的字符的索引,然后左右移动,直到点击空格、-1 或文件结尾。现在我有了单词开头和结尾的索引。最后两行应该选择这两个索引之间的单词。
但是,有时它会突出显示我想要的单词,有时它会突出显示我单击的字符右侧的所有单词。
“奥马尔你好,你要去哪里”
如果我点击 hello 中的 h,它会突出显示 hello where 而不是突出显示 hello
如果我单击 o in going,它将仅按应有的方式突出显示
如果我点击你里面的o,它会突出显示你去
我使用控制台检查了单词的开始和结束索引,由于某种原因它们总是正确的,除了我点击的单词之外,还选择了其他单词
private void richTextBox1_Click(object sender, EventArgs e)
{
int length = richTextBox1.Text.Length;
int rightPart = richTextBox1.SelectionStart;
int leftPart = richTextBox1.SelectionStart - 1;
string rightText = "";
string leftText = "";
while (rightPart != length)
{
if (richTextBox1.Text[rightPart].ToString().CompareTo(" ") != 0)
{
rightText += richTextBox1.Text[rightPart];
rightPart++;
}
else
{
break;
}
}
while (leftPart != -1)
{
if (richTextBox1.Text[leftPart].ToString().CompareTo(" ") != 0)
{
leftText = richTextBox1.Text[leftPart] + leftText;
leftPart--;
}
else
{
break;
}
}
leftPart++;
Console.WriteLine("\nSelected word is " + leftText + rightText + "\n");
richTextBox1.SelectionStart = leftPart;
richTextBox1.SelectionLength = rightPart;
}
【问题讨论】: