VS WinForm设计器总是更改自定义构造函数?

时间:2012-08-17 01:37:32

标签: c# winforms visual-studio-2010

所有

我正在使用MSVS 2010使用C#/ WinForms进行项目。 我创建了一个从组框派生的对象,我更改了它的构造函数,以便在构造时采用整数变量。 我将我的对象添加到工具箱中,我可以成功地将该对象插入GUI设计器。

但每次我在表单中进行更改时,我的自定义构造函数都会更改。

所以我需要一种方法来修复VS,这样每次我更改表单时代码都不会自行重建,或者我需要一些其他方法来修复自定义对象中的代码。

基本上我正在做的是取决于我传递的参数我正在创建不同的小部件集并向用户显示它们。但是我做了那个对象,因为我试图消除代码重复。

有人可以帮忙吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

必须保留默认的无参数构造函数,并且应该调用InitializeComponents。如果这样做,那么添加辅助构造函数应该没问题,设计师不应该搞乱它。

但是,我建议不要使用重载的构造函数,而是公开方法或属性来完成WinForms控件的所需任务。

在WinRome中,按照..

进行操作

辅助构造函数的示例:

// Leave this constructor - in the X.designer.cs file
public MyType () {
    InitializeComponents();
}

// Add your own constructor - in the X.cs file
public MyType (int x) : this() {
    // ..
}

更新:避免手动编辑“X.designer.cs”文件;这些是给设计师的。而是编辑镜像“X.cs”文件。部分类用于在这两个文件之间分布设计器代码和自定义代码。