2013-07-05 2 views
3

Когда я пытаюсь создать обработчик событий, например. нажатие кнопки в C#, если я буду писать код вручную в коде за классом, обработчик события не будет вызываться; Если я дважды щелкнул по кнопке в форме, и VS автоматически генерирует событие, он будет работать отлично. В чем причина такого поведения?Обработчики событий в Visual Studio

+2

есть файл 'Designer.cs', который содержит сведения о событиях каждого щелчка, поэтому он не вызывается при написании кода вручную. – Rahul

+0

« обработчик событий не будет вызываться »- покажите свое событие подписной код. Ручные подписки также должны работать, как и с помощью конструктора форм. Кроме того, какие рамки GUI вы имеете в виду? – Dennis

+1

Привет, Деннис, я имел в виду приложения для окон ... –

ответ

4

Файл Form.Designer.cs, который подключает события к каждой отдельной форме (каждая форма имеет собственный файл дизайнера).

Открыть, что и вы найдете такие строки:

button1.Click += button1_Click; 

..etc.

Как показано ниже:

Designer file

Click wiring

+0

Это не ответ. ОП спрашивает, почему его подписка на ручное мероприятие не работает. – Dennis

+0

@Dennis Это странно, потому что я прочитал его как «как происходит эта волшебная обработка событий». Кроме того, он был принят ОП. –

+1

Я вижу, это именно то, что происходит, когда вы удаляете обработчик событий в своем коде позади, и это дает вам ошибку для удаления связанного кода с Designer.cs. Спасибо Саймону и Рахулу. –

0

Ваш файл разве в состоянии знать, что обработчик событий должен быть связан с функцией, которую Вы создали.

Если вы хотите связать вручную, нажмите кнопку один раз, а в верхней части окна свойств вы увидите символ молнии (события). Нажмите на это и прокрутите вниз до события клика, а там добавьте свою функцию.