【发布时间】:2015-12-21 21:28:29
【问题描述】:
情况是这样的。我做了一个自定义按钮控件:
public partial class EButton : Control, IButtonControl
此控件包含一个按钮。我使用 getter/setter 在设计器中编辑他的属性,如下所示:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Browsable(true)]
public UIButton Button
{
get
{
return EBtn;
}
set
{
EBtn = value;
}
}
现在,我可以在设计器中访问我的所有按钮属性。
我的问题是,无论我定义什么,它总是被我控件中的默认属性覆盖。
示例: 在我的控制中,按钮的 BackColor 设置为白色。 在特定的表单中,我希望此按钮为红色,因此我在表单的设计器中将 BackColor 属性设置为红色。 当我重新加载设计器时,该值已返回到 White。
我不想为按钮的每个属性创建一个设置器。这是一个特定的控件 (http://www.janusys.com/controls/),它有很多有用的属性,我想针对每种特定情况进行调整。
有人知道解决办法吗?
【问题讨论】:
-
在这里查看 Plutonix 的答案:stackoverflow.com/questions/32070817/… 您很可能必须为您的新控件实现一个类型转换器,告诉设计人员如何使用它。
-
当我重新加载设计器时,值已返回到白色 - 听起来像是序列化问题。尝试检查由设计器生成的文件以查看此更改是否实际保存。
标签: c# winforms properties controls windows-forms-designer