Итак, проблема в том, что когда я использую событие Enter focus и применяю SelectAll(), это просто не работает вообще! Текст еще не выбран. Я также пытался использовать событие Click, которое работало нормально, но у меня возникли трудности со вторым щелчком мыши, так как все щелчки мыши снова запускают метод SelectAll(), текст всегда все еще выделен. Вероятно, я мог бы использовать глобальные переменные, которые сохраняют состояние выбора текста и меняют состояния наоборот, но я не хочу использовать какие-либо дополнительные переменные, если в этом нет необходимости (каждая для всех текстовых полей... нет).
Для этого должно быть простое и элегантное решение, поскольку многие приложения и веб-сайты используют это поведение для сделать жизнь пользователей проще. Я прочитал несколько форумов и нашел какое-то решение, но оно выглядит излишне сложнее, чем я надеялся.
Это соответствующая часть моего кода... ничего особенного!
Код: Выделить всё
private void G_tbx_canvasSize_Enter(object sender, EventArgs e)
{
(sender as TextBox).SelectAll();
}
- Пользователь нажимает на текстовое поле (TB)
- Фокус на TB
- Код запускается и выбирает весь текст
- Пользователь снова нажимает на TB
- Поскольку это уже сфокусировано, код не запустится снова, поэтому текст по умолчанию отменяет выделение. (Я тестировал это!)
- Если пользователь уйдет и снова нажмет TB, все запустится снова и снова..
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/656 ... us-clicked
Мобильная версия