我有一个用户控制面板,上面有两个按钮。其他用户控件从此控件继承,如果按钮应该可见,则将属性设置为true。一切都按照我想要的方式运行,但我正在寻找的是一种从设计器窗口清除这些按钮的方法,用于表示此属性为false的表单。
看起来像:
[DefaultValue(false)]
public bool ShowButtons{
set
{
mShowButtons = value;
UpdateButtons();
}
get
{
return mShowButtons;
}
}
此属性显示在属性窗口中,按钮始终显示在设计器窗口中。有没有办法让设计师在更改属性以从继承表单中清除按钮时对此进行评估?我无法找到设计师属性来执行此操作。
答案 0 :(得分:0)
尝试添加get
:
bool mShowButtons;
[DefaultValue(false)]
public bool ShowButtons
{
get
{
return mShowButtons;
}
set
{
mShowButtons = value;
UpdateButtons();
}
}
现在,在Designer中编辑派生类时,您应该能够在选择派生ShowButtons
时在属性窗口中看到UserControl
属性。 (除非您添加适当的属性,否则它将位于“其他”部分)。如果你在那里设置它,它应该在Designer中具有适当的效果(假设UpdateButtons()函数的内容正常工作))。
属性必须是公共的,并且具有机器get
和set
才能显示在属性编辑器窗口中。一旦它,然后在属性窗口中设置值将“保存”控件的资源/实现中的设计控件的设置。
我经常使用此功能来专门派生UserControls,所以我知道它应该适合你(尽管可能还有其他问题)。