Недавно я преобразовал TextBox (который я использую в качестве окна поиска) в RichTextBox, чтобы выделить некоторые слова, содержащиеся в поле. При этом я заметил несколько «ошибок». Я хотел бы знать, являются ли они преднамеренными и как их обойти.
Первая и самая важная проблема возникает только тогда, когда я вызываю SelectAll() для поля, чтобы получить его информацию о событии keyDown:
((RichTextBox)sender).SelectAll();
string search = ((RichTextBox)sender).Selection.Text;
Это не позволяет мне писать больше символа в RTB. Я предполагаю, что он оставляет мой текст выделенным и перезаписывает его при каждом нажатии клавиши. Я не могу найти какой-либо метод DeSelect(), так что есть ли другой способ получить эти строковые данные, чтобы предотвратить эту проблему. Мне нужно, чтобы строка передавалась регулярному выражению.
Во-вторых, RTB бросает IBeam в коробку только по двойному щелчку. Есть ли способ воссоздать поведение TextBox, которое входит в один клик (или он должен входить в один клик по умолчанию?)