为什么Visual Studio Designer会删除代码?

Sha*_*mer 4 c# visual-studio-2008 visual-studio

在我们当前项目的整个过程中,Visual Studio设计师已多次进行修改,导致代码丢失.例如,在设计器代码中手动设置的事件处理程序布线丢失了.有谁知道为什么会这样?

编辑:我知道手动编辑这些文件不是一个好主意,但它也发生在设计师设置的其他事件布线上.

Ian*_*Ian 12

对于初学者来说,请阅读designer.cs文件顶部的XML.

/// <summary>
/// Required method for Designer support - do not modify
/// contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
Run Code Online (Sandbox Code Playgroud)

通常,您不应该修改这些文件,因为它们是自动生成的.这可能是为什么在主要的分类下面隐藏代码的原因.

我偶尔发现该进程已经删除了自己生成的代码,我必须将其合并回来.最常见的是它决定不再实例化自定义用户控件,所以当我开始运行时,我得到一个NullReferenceException.

答案是将代码放在其他地方,就像在构造函数中调用InitializeComponent()方法之前一样.如果开发人员没有意识到这一点,那么你应该通知他们并教育他们,文件是.designer.cs的事实应该向新开发者提出问题,为什么这个奇怪的扩展.


小智 5

你们不是在修改生成的代码文件,不是吗?喜欢MyForm.Designer.cs?这就是我们partial上课的原因.