我有一个继承自Button的对象。此按钮是从TableLayoutPanel继承的对象的属性。该属性称为MyButton
:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
**[DefaultValue(??? Something Like Visible = false ???)]**
public CustomButton MyButton
{
get { return _button; }
set { _button = value; }
}
现在,在设计器中,我想将Visible
的{{1}}属性设置为false。默认MyButton
属性为true,但在这种情况下,我希望它为false。
我该怎么做?
答案 0 :(得分:3)
[DefaultValue(false)]
http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute(v=vs.71).aspx
答案 1 :(得分:1)
因为您的值不是常量值,所以它不能与DefaultValueAttribute
一起使用,因为在编译时需要这些值。相反,您可以忽略DefaultValueAttribute
,并且在构造函数中,您可以使用自定义的MyButton
实例初始化CustomButton
属性,并在其上设置默认属性。这里唯一不规则的是,在属性网格中,属性值将显示为粗体,就像用户已更改它一样。
以下是一个例子:
public YourCustomControlClass()
{
this.MyButton = new CustomButton { Visible = false; };
}
答案 2 :(得分:1)
在您的MyButton
班级, 删除 您添加的任何内容,试图覆盖可见属性添加以下代码:
public MyButton()
{
this.Visible=false;
}
重建它,然后在表单中添加一个新的Mybutton实例,您可以看到Designer中的visible属性现在设置为False。
答案 3 :(得分:0)
覆盖属性,然后设置默认值:
[DefaultValue(false)]
new public bool Visible
{
get { return base.Visible; }
set { base.Visible = value; }
}
希望这会奏效。