Попробуйте выделить весь текст в TextBox при фокусировке/нажатииC#

Место общения программистов C#
Ответить
Anonymous
 Попробуйте выделить весь текст в TextBox при фокусировке/нажатии

Сообщение Anonymous »

Я пытаюсь имитировать поведение, когда пользователь нажимает на поле имени пользователя (например) и весь текст (имя) выделяется автоматически, чтобы его было проще заменить новым. Но когда пользователь снова нажимает на поле, текст/имя переходят в невыделенное состояние, поэтому пользователь может продолжать писать текст из курсора. Я уверен, что все знают, что я пытаюсь описать, поскольку мы все сталкивались с этим много раз, когда писали в текстовом поле или хотели изменить его содержимое...
Итак, проблема в том, что когда я использую событие 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»