我有一个继承自Button
的自定义控件。此自定义控件由另一个自定义控件公开,该控件继承自Panel
当我将自定义面板添加到设计器时,我可以设置自定义按钮的属性。但是,如果我设置了Visible
属性,则设计器不会更新。因此,当我启动表单时,Visible
属性不会更改。
在我的自定义面板类中,我已将属性[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
添加到自定义控件属性中,但这不起作用。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public PanelButton ButtonSave
{
get { return _btnSave; } // btnSave is a custom control which inherits from Button
}
为什么designer.cs没有更新?
编辑:
只是为了澄清。我不会继承UserControl
,而是继承自Button
:
public abstract class BaseButton : Button
{
#region Member variables
private ButtonPanel _panel;
#endregion
/*rest of the code*/
}
完整的图片如下所示:
public partial class ButtonPanel : UserControl
(是一个用户控件,并拥有自己的designer.cs)
public abstract class BaseButton : Button
(用作基本按钮。用于在按钮面板上添加按钮)
public class PanelButton : BaseButton
(在客户端代码中用于添加按钮)
编辑II:
我想我发现了这个问题。初始化按钮时,我将Visible
属性设置为false,如下所示:
// initialize button
private PanelButton _btnSave = new PanelButton(Properties.Resources.disk_blue) {Visible = false};
// Property for button
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public PanelButton ButtonSave
{
get { return _btnSave; }
set { _btnSave = value; }
}
在设计器中ButtonSave
属性Visible
发生更改时,它不会对其执行任何操作。当我离开{Visible = false};
时,按钮始终可见,无论属性是假还是真,都没关系。
如何使用设计器设置Visible属性?