Когда текстовое поле С# WinForms получает фокус, я хочу, чтобы он вел себя как адресная строка вашего браузера.
Чтобы узнать, что я имею в виду, нажмите в адресной строке вашего веб-браузера. Вы заметите следующее поведение:
- Щелчок в текстовом поле должен выбрать весь текст, если текстовое поле ранее не было сфокусировано.
- Мышь вниз и перетаскивание в текстовое поле должны выбирать только текст, который я выделил с помощью мыши.
- Если текстовое поле уже сфокусировано, щелчок не отображает весь текст.
- Фокусировка текстового поля программно или с помощью клавиатуры, чтобы выбрать весь текст.
Я хочу сделать именно это в WinForms.
БЫСТРОЕ ПРЕДУПРЕЖДЕНИЕ ОШИБОК: пожалуйста, прочитайте следующее, прежде чем отвечать! Спасибо, ребята.: -)
Вызов .SelectAll() во время события .Enter или .GotFocus не будут работа, потому что если пользователь нажал текстовое поле, каретка будет размещена где он нажал, тем самым отменив выбор всех текст.
Вызов .SelectAll() во время события .Click не будет работать, потому что пользователь не сможет выбрать какой-либо текст с помощью мыши; вызов .SelectAll() будет переписывать выбор текста пользователя.
Вызов BeginInvoke ((Action) textbox.SelectAll) при вводе/вводе события не работает, потому что он прерывает правило № 2 выше, он будет удерживать выбор пользователя в фокусе.