richTextBox1 содержит текст, который я нажимаю на слове, и консоль отображает это слово для меня, и он выделяет / выбирает слово, на которое я нажал.
Для этого я сохраняю индекс символа, на котором щелкнулидите налево и направо, пока я не нажму пробел, -1 или конец файла.Теперь у меня есть индексы начала и конца слова.Предполагается, что в последних двух строках слово выбирается между этими двумя индексами.
Однако бывает так, что иногда оно выделяет нужное мне слово, а иногда выделяет все слова справа от символа, на котором я щелкнул,
"omar hello, куда ты идешь"
Если я нажму на h в hello, он подскажет привет, где вместо выделения hello
Если я нажму на o при переходе, он будет выделять движение только какон должен
Если я нажму на 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;
}