我已经扩展了标准的TextBox控件以支持填充。它可以工作,只是IDE不会将填充保存到designer类中。
代码:
[EditorBrowsable(EditorBrowsableState.Always)]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Bindable(true)]
public new Padding Padding
{
get
{
return padding;
}
set
{
padding = value;
OnPaddingChanged(EventArgs.Empty);
}
}奇怪的是,如果我将属性名更改为MyPadding或其他任何东西,它就会突然起作用。是什么导致了这个问题?
发布于 2015-11-22 18:59:27
当您只是为了更改某些属性而对基类属性进行阴影时,不要使用自己的后备字段,而是使用基属性本身,如下所示
[EditorBrowsable(EditorBrowsableState.Always)]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Bindable(true)]
public new Padding Padding
{
get { return base.Padding; }
set { base.Padding = value; }
}虽然上面的代码解决了持久性问题,但我不太确定“它工作”是什么意思,因为必须有一个很好的理由在Control类中专门隐藏相应的TextBoxBase属性才能隐藏。
https://stackoverflow.com/questions/33858403
复制相似问题