.NET C # - файлы кода формы и конструктора для передачи событий - PullRequest
0 голосов
/ 02 декабря 2008

Мне было просто любопытно, как другие работают с такого рода кодом WinForm в C #. Допустим, у меня есть форма, давайте назовем ее Form1. И у меня есть DataGridView с именем dgvMain.

Где вы положили код:

this.dgvMain.CellEndEdit += new DataGridViewCellEventHandler(dgvMain_CellEndEdit);

Вы помещаете это в код Form1 или код конструктора Form1? Должен ли этот код «передачи событий» идти в методе Form1_Load?

Причина, по которой меня спрашивают, заключается в том, что ... если дважды щелкнуть DataGridView, среда IDE вставит код:

 this.dgvMain.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvMain_CellContentClick);

в код конструктора. Должен ли ваш код "события проводки" быть в двух местах?

Ответы [ 3 ]

2 голосов
/ 02 декабря 2008

Короткий ответ - да.

Более длинный ответ - это .designer.cs для кода, сгенерированного дизайнером. если вы поместите туда свой собственный код, у него есть шанс переписать, испортить время разработки в visual studio и снизить удобство обслуживания, потому что никто не ожидает, что там будет собственный код.

1 голос
/ 02 декабря 2008

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

Теперь вы фактически помещаете имя события в саму форму (это одно из свойств конструктора форм), и генератор кода выталкивает вещи обработчика событий + = в частичном классе. Я ненавижу это так, но это то, что есть.

0 голосов
/ 02 декабря 2008

Я использую Designer для всех событий, связанных с Компонентом.

Я использую код для всех событий объекта.

...