Регистрация метода события нажатия клавиши в C # «DialPad.Дизайнер.Страница CS

#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. Это то, чего я хотел.. Спасибо, Нирадж.. В следующий раз я бы прояснил свои вопросы … 🙂