C # WinForms — обнаружение щелчка пользователя в текстовом поле

#c# #.net #winforms

#c# #.net #winforms

Вопрос:

Я разрабатывал приложение Windows form и столкнулся с проблемой.

Попробовав различные вещи (перечисленные ниже) Я пришел за вашими знаниями, которые помогут мне указать правильное направление.

Я воспроизвел гораздо более простую версию своей программы:

введите описание изображения здесь

Как вы можете видеть, у меня есть два текстовых поля. Я хочу иметь возможность щелкнуть текстовое поле внизу (textbox1) и вызвать какую-либо форму события, в этом случае, для простоты, появится окно сообщения.

Я прошел через события, перечисленные здесь: https://msdn.microsoft.com/en-us/library/system.windows.forms.textbox_events (v = vs.110).aspx и внедрил их в свой код, поскольку я ожидал, что один из них будет работать. Однако это не так.

     private void textBox1_TextChanged(object sender, EventArgs e)
    {
        MessageBox.Show("TextBox Entered");
    }
    //Above - Will pop message box when text entered.
    private void textBox1_GotFocus(object sender, EventArgs e)
    {
        MessageBox.Show("TextBox Entered");
    }

    private void textBox1_Enter(object sender, EventArgs e)
    {
        MessageBox.Show("TextBox Entered");
    }

    private void textBox1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("TextBox Entered");
    }
  

Кто-нибудь знает, чего мне не хватает? Я полагаю, то, чего я пытаюсь достичь, действительно возможно?

С уважением, Б.

Комментарии:

1. Подписано ли ваше текстовое поле на события? Нажмите на текстовое поле в режиме конструктора и проверьте, перечислены ли события на вкладке события (выглядит как молния).

2. Ах, отлично! Я никогда не сталкивался с этим раньше. Большое вам спасибо 🙂

3. В следующий раз дважды щелкните эту область в окне событий, и она сгенерирует для вас тело события и автоматически подпишется на него.

4. Хорошо, спасибо за этот совет!

Ответ №1:

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

Другой способ — подписаться напрямую с помощью кода; вы могли бы написать это, например, в конструкторе формы:

 textBox1.TextChanged  = textBox1_TextChanged;