以下内容始终在Designer.cs文件中生成显式属性赋值:
[Category("Appearance"), DefaultValue(typeof(Color), "Empty")]
public Color PropertyBackColor
{
get { return propertyBackColor; }
set { propertyBackColor = value; }
}
Color propertyBackColor = Color.Empty;
我在Designer.cs文件中得到了这个,好像设计师不了解DefaultValue。
this.textBox2.PropertyBackColor = System.Drawing.Color.Empty;
它适用于任何实际颜色。只是不适用于Color.Empty。
答案 0 :(得分:-1)
默认值可以通过ShouldSerialize方法定义。请参阅MSDN上的Defining Default Values with the ShouldSerialize and Reset Methods。
示例代码作为此案例的示例(改编自上面的link)
[Category("Appearance")]
public Color PropertyBackColor
{
get { return propertyBackColor; }
set { propertyBackColor = value; }
}
Color propertyBackColor = Color.Empty;
public bool ShouldSerializePropertyBackColor()
{
return propertyBackColor != Color.Empty;
}
public void ResetPropertyBackColor()
{
propertyBackColor = Color.Empty;
}
我认为,方法ShouldSerialize和Reset可以是私有的或受保护的。