C# TextBox Enter событие, запущенное без действий пользователя

Я использую событие Enter в текстовом поле для управления своим заполнителем, но событие Enter срабатывает, когда моя форма отображается без действий пользователя.

Как я могу это исправить?

Form loginWindow = new Form();
loginWindow.Show();

private void IdTextBox_Enter(object sender, EventArgs e)
    {
        if (IdTextBox.Text == "Identifiant")
        {
            IdTextBox.Text = "";
            IdTextBox.ForeColor = Color.Black;
        }
    }

Ваш TextBox является первым в порядке TabIndex?

Steve 02.05.2018 11:38

да, это мой первый TextBox в форме, второй работает хорошо, и его событие Enter не сработало

MrB3NiT0 02.05.2018 11:39

Событие ввода срабатывает, когда элемент управления получает фокус - когда ваша форма запускает первый элемент управления (ваше текстовое поле), получает фокус - поэтому событие срабатывает должным образом.

PaulF 02.05.2018 11:43

Итак, почему IdTextBox.ContainsFocus = false, и я не могу писать в текстовое поле?

MrB3NiT0 02.05.2018 11:45

Не видя остального кода формы - сложно сказать. Чего именно вы пытаетесь достичь.

PaulF 02.05.2018 11:50

Как говорит @PaulF. Вы можете объяснить, в чем проблема, если вы вводите этот обработчик событий? Проверка if заблокирует любой побочный эффект, и обработчик событий станет безвредным.

Steve 02.05.2018 11:56

Это просто способ иметь заполнитель в моем текстовом поле. При вводе стирать текст, когда я выхожу, если пусто, напишите мой заполнитель. Больше нет кода для отображения или, возможно, события выхода, но оно противоположно событию Enter.

MrB3NiT0 02.05.2018 12:00

См. stackoverflow.com/a/5450496/939213 для текста-заполнителя.

ispiro 02.05.2018 12:12

Я создал небольшую тестовую форму с двумя текстовыми полями - при отображении формы все работает правильно - «Идентификатор» очищен, и я могу писать в текстовое поле. Поэтому я не могу понять, почему вы не можете вводить текст в текстовое поле. Причина, по которой ContainsFocus имеет значение false, заключается в том, что в этот момент элемент управления не полностью получил фокус - это происходит только при срабатывании события GotFocus - см. Ответ Баскара Джона.

PaulF 02.05.2018 12:18

Хо, хорошо, мой плохой @PaulF .. Я могу писать в текстовом поле, но мой заполнитель стирается из-за события Enter, поэтому мое текстовое поле пустое, а не заполнитель

MrB3NiT0 02.05.2018 14:09

Если вы хотите, чтобы текст-заполнитель оставался до тех пор, пока текст не будет введен в поле (и появится снова, если весь текст будет удален), посмотрите ссылку, опубликованную ispiro. Вам не нужно создавать производный класс - вы можете просто вызвать метод SendMessage с "IdTextBox.Handle" в качестве первого параметра.

PaulF 02.05.2018 14:25

Установите TabStop = false. Фокус не переместится в TextBox.

Jimi 02.05.2018 14:29

спасибо @Jimi, он отлично работает.

MrB3NiT0 02.05.2018 14:38

Обратите внимание, что ваши пользователи не смогут переходить к этому элементу управления Tab - он будет доступен только щелчком мыши. Если проблема возникает только при первом запуске формы, вы можете сбросить TabStop на true в событии Enter.

PaulF 02.05.2018 15:09

спасибо за это разъяснение @PaulF

MrB3NiT0 02.05.2018 15:46
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
15
99
0

Другие вопросы по теме