2008-12-01 3 views
0

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

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

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

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

Причина Я спрашиваю ... Если вы дважды щелкните DataGridView интегрированная среда вставляет код:

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

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

ответ

0

Я использую конструктор для всего события, связанного с компонентом.

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

1

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

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

2

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

Дольше ответ заключается в том, что .designer.cs существует для кода, созданного дизайнером. если вы разместите свой собственный код там, у него есть шанс перезаписываться, закручивать материал времени разработки в визуальной студии и снижать ремонтопригодность, потому что никто не ожидает, что пользовательский код будет там.

+0

Это то, о чем я беспокоюсь ... Мне не терпится поставить связанный код в двух местах. Но я ненавижу код, который переписывается codegen больше! – BuddyJoe 2008-12-01 22:25:00