Как выделить выбор, сделанный программно в текстовом поле Winforms - PullRequest
5 голосов
/ 02 ноября 2008

Я не углублялся в подробные исследования, но интуитивно понятная вещь не работает:

private void SerachButton1_Click(object sender, EventArgs e)
{
   String serchTerm = searchTerm1.Text;
   String text = usualTextBox.Text;


   Int32 index = text.IndexOf(serchTerm);

   if (index >= 0)
   {
      usualTextBox.Select(index, serchTerm.Length);
   }
}
Свойства

SelectedText, SelectionLength и SelectionStart соответствуют ожиданиям после вызова Select, но видимого выбора нет.

Что я здесь не так делаю?

Редактировать: Я также пытался RichTextBox. Когда я устанавливаю цвет фона и текста для выделения, он отображается, но не отменяется автоматически, когда вы вручную выбираете другую часть текста или просто нажимаете на позицию в тексте. Различаются ли эти два типа выбора по своей природе, и если вы выбираете программно, вы также должны отменить выбор программным способом?

1 Ответ

8 голосов
/ 02 ноября 2008

Вам необходимо установить usualTextBox.HideSelection на false, чтобы выделение оставалось видимым, когда фокус находится не в TextBox.

...