#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;