我知道,那.designer.cs
文件包含由Visual Studio中的可视化表单设计器生成的数据。 不过,我有一些额外的方法,虽然,我想投入.designer.cs
文件为好,因为这些负责下级形式处理(例如,我的视觉状态管理器的碎片)。
所述InitializeComponent
内侧方法.designer.cs
文件具有评论指出,它是自动生成的,不应该被用户修改。 这是否限制只适用于该法或不应该的.designer.cs
文件被用户在所有编辑? 我注意到,即除其他外,它包含Dispose()
方法,它的用户可能需要修改-有什么建议的第一个选项。 我想可以肯定,虽然。
你不应该修改.designer.cs
。 期。 您的更改将不怜悯被覆盖。
更新:要多一点帮助,因为V3 C#(VS 2008)包括了部分的方法,其中许多设计人员现在将用来让你实现自定义的行为。
this instruction applies to the complete designer.cs file.
As all the code written in it is automatically generated.
You should not do any modifications in this file as it can be recreated anytime... this will remove your methods...
If you want to keep the code separate from the form code file, then I suggest to create another file which contains a partial class where you can put all such methods...
Hope it helps...
我认为其他的答案被简化得太多。
首先,我完全同意,它几乎总是一个坏主意编辑.designer文件,但也有在那里我做了这么几个情况,觉得这是很好的和适当的,并没有引火烧身。
说我创建一个标签时,不慎双击。 设计师创造了我的主cs文件的方法,然后我删除:
private void label1_Click(object sender, EventArgs e) { }
那么,现在的代码将不会建立,除非我也删除我的.designer文件如下:
this.label1.Click += new System.EventHandler(this.label1_Click);
不太频繁,订单中的东西被添加到窗体或面板(或菜单!)问题,并且它可以更容易地更改代码的顺序比设计GUI。 根据我的经验VS 2010总是拿起这个,更新其GUI的信息,并重绘其预览。 只记得把重点放在Add()
方法-订单变量在一般不要紧声明。
同上如果你设置导致要添加到.designer文件中的一行,删除线被快速回升,并刷新设计师的属性。 也许是明智/安全使用GUI来更改属性,但我想删除行清洁。
是不是这个区域内部,代码#region Windows Form Designer generated code
,将只能获得一次产生。 它是安全的移动,正如其他人推荐的其他地方( https://stackoverflow.com/a/6527072/1593924 ),移动Dispose(bool)
方法的实际出发可以做出很多的感觉,如果你修改它或添加Dispose()
方法,该方法应该理想地坐旁边Dispose(bool)
。
protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing);
免责声明:
这就是说,我只试过2010 VS极限; 您的里程可能上方1-3有所不同,但4应该是安全的,只要该.designer是具有部分类Dispose(bool)
该外#region
。 我也确保一个.designer文件的最新版本好与它搞乱之前被提交到源代码库。
通过承认与一起在经历Dispose(bool disposing)
模式,我没有意思推广这种做法。 似乎有很好 的理由 ,以简单使用Dispose()
在大多数情况下,只有做多的非托管资源,每个封装一到一个在专用的一次性对象。
留在和平designer.cs不仅可以防止您的更改被覆盖,也被称无意外应该站出来的它可以帮助其他开发人员。 话虽这么说,至少有一个例外,我能想到的,这是由后一书的作者提到的:扩展Dispose()
方法。 据我所知,这个代码 - 一旦生成 - 不会被覆盖。
然而,在我看来,更好的解决方案是重写Dispose
方法比调用base.Dispose()
让我们离开designer.cs干净。
部分设计师窗体类它的使用由Visual Studio用于放置所有的代码需要建立控制。
该方法的InitializeComponent()不能覆盖:它的使用由设计师编辑为您呈现形式的预览! 尝试在一个新项目:调整您的窗体上添加一个标签和一个按钮,并重新命名InitializeComponent()方法+重新编译。 您的形式返回到默认大小!
如果您需要通过形式加载调用代码,只需重写的OnLoad()虚方法,如果你需要的形式表现,简单的覆盖OnShown()虚方法调用的代码。
记得拨打开始在它的覆盖base.Method()。
希望这一点我的经验可以帮助您!