繁体   English   中英

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

[英].NET C# - Form versus Designer code files for Event Wiring

我只是很好奇其他人如何在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);

进入设计器代码。 您的“事件接线”代码应该放在两个地方吗?

简短的回答是。

更长的答案是.designer.cs存在于设计器生成的代码中。 如果您在其中放置自己的代码,则可能会被覆盖,从而使Visual Studio中的设计时间变得混乱,并降低了可维护性,因为没有人期望自定义代码会出现在其中。

这是一个敏感的话题。 在1.1中,表单文件中的哪些区域存在,但是很多时候,设计人员会覆盖代码。 我是从webforms经验上讲的,但我只能认为在其他地方也是如此。

现在,您实际上将事件名称放入了表单本身(它是表单设计器上的属性之一),并且代码生成器将在局部类中推出+ =事件处理函数。 我讨厌这种方式,但事实就是如此。

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

我将代码用于所有对象事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM