ChildForm не может изменять свойства BaseForm - PullRequest
2 голосов
/ 27 мая 2020

Теперь мне нужно создать форму с помощью настраиваемого блока управления из-за запроса на работу. Я создал простой класс формы как 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 не работает в дизайнере. Properties on disigner

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...