也许标题不是那么清楚,但这正是我所经历的:
我创建了一个基本表单,其中包含一个OK和一个Cancel按钮(名为BaseOkCancelButtonForm) 此表单还有一些属性如下所示:
[Browsable (true)]
[Category ("Design")]
[DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
public string OkButtonText
{
get
{
return btnOk.Text;
}
set
{
btnOk.Text = value;
}
}
[Browsable (true)]
[Category ("Design")]
[DefaultValue (true)]
[DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
public bool OkButtonVisible
{
get
{
return btnOk.Visible;
}
set
{
btnOk.Visible = value;
}
}
[Browsable (true)]
[Category ("Design")]
[DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
public string CancelButtonText
{
get
{
return btnCancel.Text;
}
set
{
btnCancel.Text = value;
}
}
[Browsable (true)]
[Category ("Design")]
[DefaultValue (true)]
[DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
public bool CancelButtonVisible
{
get
{
return btnCancel.Visible;
}
set
{
btnCancel.Visible = value;
}
}
现在,这就是发生的事情: 我创建了一个新的表单,它继承自我的BaseOkCancelButtonForm。
当我修改继承表单的CancelButtonText属性并重建项目时,一切都按预期进行:“取消”按钮的文本仍然是我设置的文本。 但是,当我对CancelButtonVisible属性执行相同操作时,出现问题。 当我将CancelButtonVisible属性设置为false并重建项目时,VS.NET会将此属性的值重置为true。 :
出于这样或那样的原因,设计师不会保留更改后的值? 这是知道的行为吗?我做错了吗?
答案 0 :(得分:0)
嗯,当我在我的基本表单上保护CancelButton时,似乎这确实有效。 但是,我不想这样做。 此外,它也没有必要这样做...(并且更改按钮的文本属性不需要保护按钮,就像应该这样)...
怪异。