Я думаю, что я столкнулся с ошибкой в .NET, но мне хотелось бы знать, не так ли это.Win Forms: RichText Box -> AutoWordSelection/Hide Selection bug
Прежде всего, я создаю простой текстовый редактор в Win Forms. Я добавил функциональность, чтобы найти нужный текст. Он работает как немодальный диалог, который я создал. Я хотел, чтобы он работал следующим образом: если найденное слово найдено, оно выбирает текст в RTB, фокусируется на нем, а затем возвращает фокус обратно в мое немодальное окно. В связи с включением свойства Hide Selection он работал отлично, точно так, как я хотел, чтобы это было (фокус все еще находился на немодальном окне после поиска, но найденная фраза оставалась выделенной в RTB).
Позже я заметил, что с атрибутом AutoWordSelection что-то не так, оно просто не работает. Итак, я сделал, как сказал here. И действительно, это помогло, но потом я заметил, что мой алгоритм поиска не работает (теперь мне нужно сосредоточиться на RTB после поиска, а не вернуть его в немодальное окно). Другими словами, он просто прекратил работать.
Я пытался добавить код в моем FixedRichTextBox (я добавил его в рамках первой части предложенной Гансом):
if(base.HideSelection)
base.HideSelection=false;
base.HideSelection=false;
Я также попытался это по-другому, я имею в виду: `если (! baseSelection) [...]
В обоих случаях я получил сообщение о невозможности создания дескриптора окна. Таким образом, я должен согласиться жить только с AutoWordSelection или HideSelection, работая правильно (причина, над чем часть работает, если я удаляю более раннюю часть, в которой вызывается AutoWordSelection).
Это не очень серьезная проблема, так как я нашел способ заставить ее работать немного не так, как я хочу, (но это не ограничивает функциональность приложения). Однако эта ошибка (если это ошибка) раздражает, и я хотел бы знать, если кто-либо когда-либо испытал это и нашел правильное решение.
Скажем @Hans Passant: D