Теперь мне нужно создать форму с помощью настраиваемого блока управления из-за запроса на работу. Я создал простой класс формы как BaseForm с помощью настраиваемого блока управления basi c. Чтобы управлять свойством Visible
кнопок «Развернуть» и «Свернуть», я переписываю исходные свойства MaximizeBox
и MinimizeBox
с ключевым словом «новый», чтобы скрыть их. Затем я создаю два новых свойства, чтобы управлять видимостью настраиваемых кнопок. Код здесь.
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public new bool MaximizeBox
{
get
{
return base.MaximizeBox;
}
set
{
base.MaximizeBox = value;
}
}
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public new bool MinimizeBox
{
get
{
return base.MinimizeBox;
}
set
{
base.MinimizeBox = value;
}
}
[Category("Appearance"), DefaultValue(true)]
[Description("获取或设置当前窗体是否具有最大化按钮。")]
public virtual bool MaxBox
{
get
{
if (btnMaxBox == null)
return false;
return btnMaxBox.Visible;
}
set
{
if (btnMaxBox != null)
btnMaxBox.Visible = value;
}
}
[Category("Appearance"), DefaultValue(true)]
[Description("获取或设置当前窗体是否具有最小化按钮。")]
public virtual bool MinBox
{
get
{
if (btnMinBox == null)
return false;
return btnMinBox.Visible;
}
set
{
if (btnMinBox != null)
btnMinBox.Visible = value;
}
}
А вот и проблемы. Эти два свойства кажутся хорошими для дизайнера. И ChildForm также можно изменить, если переключить свойства. Но они будут переустановлены, если я построю код или напрямую отлажу программу. И в коде конструктора нет кода об установке этих двух свойств.
Кто-нибудь знает, как это решить? Кроме того, DefaultValueAttribute не работает в дизайнере.