#c# #.net #winforms
#c# #.net #winforms
Вопрос:
Я разрабатываю форму dialerPad с использованием Windows form, есть текстовое поле, которое должно принимать только цифры, а не текст, моя проблема в том, что когда я добавляю код
private void txtDialedNumber_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
//Blaah Blaah Code;
}
но он не регистрируется на другой DialPad.Дизайнер.Страница CS. Например, в исходном коде регистрируется TextChangedEvent
this.txtDailedNumber.TextChanged = new System.EventHandler(this.txtDailedNumber_TextChanged);
Кто-нибудь может мне помочь в этом?
Комментарии:
1. Ваш вопрос не совсем ясен. Не могли бы вы поделиться еще каким-нибудь кодом и точно рассказать нам, где происходит сбой? Вам также следует повторно пометить свой вопрос. Насколько я вижу, в вопросе нет ничего о vb или wpf.
2. Пожалуйста, четко укажите — это событие нажатия клавиши в форме, текстовом поле или кнопке?
3. @Niraj: Это явно текстовое поле.
Ответ №1:
Вы никогда не должны изменять файлы *.designer.cs вручную.
Что вам следует сделать, так это открыть представление дизайна вашей формы, выбрать объект, а затем установить обработчик события в свойствах объектов:
В качестве альтернативы, если вы хотите зарегистрировать обработчик события вручную (вместо использования конструктора), просто поместите его в вызов InitializeComponent() в конструкторе вашей формы.
Комментарии:
1. Он не изменил никакого кода дизайнера. Он просто упоминает функцию eventhandler, указанную в конструкторе.
2. @Niraj: Я не говорил, что он это сделал… Ответ все еще применим, не так ли?
3. Да, это применимо, я беру назад свой комментарий. Моя ошибка 🙂
4. Скриншот дает лучший ответ 🙂
Ответ №2:
Я бы попытался упростить ответ Грега.
Выберите текстовое поле> перейдите на вкладку свойства> события> Событие нажатия клавиши> выберите метод this.txtDailedNumber.KeyPress
Вы закончили.
Комментарии:
1. Это то, чего я хотел.. Спасибо, Нирадж.. В следующий раз я бы прояснил свои вопросы … 🙂