.NET C# - 用于事件接线的表单与设计器代码文件

时间:2008-12-01 21:09:09

标签: c# winforms gui-designer

我很好奇其他人如何在C#中使用这种WinForm代码。 让我们说我有一个Form我们称之为Form1。我有一个名为dgvMain的DataGridView。

你把代码放在哪里:

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 个答案:

答案 0 :(得分:2)

简短回答是肯定的。

更长的答案是.designer.cs适用于设计人员生成的代码。如果你把自己的代码放在那里,它有可能被覆盖,搞砸了visual studio中的设计时间,并降低了可维护性,因为没有人希望自定义代码在那里。

答案 1 :(得分:1)

这是一个敏感的话题。在1.1中,表单文件中存在这样的区域,但很多时候,代码将由设计者覆盖。我是在谈论网络形式的经验,但我只是认为它在其他地方也是如此。

现在,您实际上将eventname放在表单本身(它是表单设计器中的一个属性),代码生成器将推出部分类中的+ =事件处理程序。我讨厌这种方式,但事实就是如此。

答案 2 :(得分:0)

我将 Designer 用于与Component相关的所有事件。

我对所有对象事件使用代码