Можно ли сделать текст в TextBox недоступным для выбора, не отключая TextBox? Это RichTextBox, и мне нужны его функции форматирования и выбора. Я не могу отключить его, потому что хочу обрабатывать события MouseMove и MouseDown.
До сих пор я думал об отключении текстового поля и размещении над ним панели, которая будет делегировать события обработчикам текстовых полей, но я не могу сделать панель прозрачной, поэтому она скрывает текстовое поле.
Спасибо.
Если это грубая попытка помешать пользователю копировать и вставлять контент, она не сработает. а также - это заставит многих пользователей возненавидеть ваше приложение.





Что насчет обработки событий .Enter или .GotFocus, чтобы очистить любой сделанный выбор?
Вы можете увидеть противоположное тому, что хотели, в Автоматически выделять весь текст в фокусе в WinForms TextBox.
Спасибо, я только что поймал событие ввода и установил фокус на другой элемент управления.
Вы же знаете, что это не рекомендуется! В документации [MSDN, Control Focus Events] четко указано, что вам не следует устанавливать фокус из обработчиков событий Enter, GotFocus, Leave, LostFocus, Validating или Validated. По крайней мере, так я это читал! Источник: msdn.microsoft.com/en-us/library/…
Я не совсем уверен, к чему вы клоните (желаете чего-то невыбираемого, но желаете его функций выбора), но дает ли установка ReadOnly значение true то, что вы ищете?
Я выбираю определенные слова программно, но я не хочу, чтобы пользователь мог что-либо выбирать.
Ах. Теперь это имеет смысл. Пойдите с тем, что предложил Нахмиасдрор в этом случае. Пользователь по-прежнему может влиять на выбор в режиме ReadOnly.
Как насчет обработки такого события изменения выбора:
private void richTextBox1_SelectionChanged(object sender, EventArgs e)
{
this.richTextBox1.SelectionStart = this.richTextBox1.Text.Length;
}
Вы меня запутали, потому что вам нужна функция выбора, а вы хотите, чтобы ее нельзя было выбрать? что вы подразумеваете под «невыбираемым»?