我在设置属性的默认值时遇到问题,每当窗体在其中被修改时都由Visual Studio Designer“更新”。设计器重置属性值
现状:
class MyHour {
MyHour() {}
MyHour(string h) {}
}
class MyPanel {
_FirstHour = new FirstHour("13:00");
[DefaultValue("13:00")]
Hour FirstHour {get { return _FirstHour; } set{...}}
}
当MyPanel是在VS设计,并且设计修改它(重新)将我(已经预初始化):
MyHour myHour1 = new MyHour();
...
myPanel1.FirstHour = myHour1;
我想它设置此(或只是不要触摸此属性):
MyHour myHour1 = new MyHour("13:00");
...
myPanel1.FirstHour = myHour1;
是的,我也从MSDN看到:“一个成员的默认值**通常是**它的初始值,一个可视化设计器**可以**使用默认值来重置成员的值代码生成器**可以* *还使用默认值来确定是否应该为成员生成代码。“最后,“一个DefaultValueAttribute不会导致一个成员用属性的值自动初始化,你必须在你的代码中设置初始值。”我设置了,但设计师重新设置了它。 “初始化程序”是什么意思? – serhio 2010-02-10 21:32:25
@serhio:字段初始值设定项将一个字段声明为'private string hour =“13:00”'。最后一部分是初始化程序。如果你不能这样做(即你正在使用自动属性),那么你必须在构造函数中初始化它。 – Aaronaught 2010-02-11 03:02:10
我已经在MyObj中进行了初始化。我会更新代码。我进行初始化,但设计师用新的(空的)“更新”我初始化的小时。 – serhio 2010-02-11 09:09:38