Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一个奇怪的财产继承行为案例_C#_.net_Winforms - Fatal编程技术网

C# 一个奇怪的财产继承行为案例

C# 一个奇怪的财产继承行为案例,c#,.net,winforms,C#,.net,Winforms,也许标题不太清楚,但这就是我所经历的: 我创建了一个基本表单,其中包含一个OK和一个Cancel按钮(称为BaseOkCancelButtonForm) 此表单还有一些属性,如下所示: [Browsable (true)] [Category ("Design")] [DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)] public string OkButtonT

也许标题不太清楚,但这就是我所经历的:

  • 我创建了一个基本表单,其中包含一个OK和一个Cancel按钮(称为BaseOkCancelButtonForm) 此表单还有一些属性,如下所示:

        [Browsable (true)]
        [Category ("Design")]
        [DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
        public string OkButtonText
        {
            get
            {
                return btnOk.Text;
            }
            set
            {
                btnOk.Text = value;
            }
        }
    
       [Browsable (true)]
        [Category ("Design")]
        [DefaultValue (true)]
        [DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
        public bool OkButtonVisible
        {
            get
            {
                return btnOk.Visible;
            }
            set
            {
                btnOk.Visible = value;
            }
        }
    
        [Browsable (true)]
        [Category ("Design")]
        [DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
        public string CancelButtonText
        {
            get
            {
                return btnCancel.Text;
            }
            set
            {
                btnCancel.Text = value;
            }
        }
    
        [Browsable (true)]
        [Category ("Design")]
        [DefaultValue (true)]
        [DesignerSerializationVisibility (DesignerSerializationVisibility.Visible)]
        public bool CancelButtonVisible
        {
            get
            {
                return btnCancel.Visible;
            }
            set
            {
                btnCancel.Visible = value;
            }
        }
    
现在,这就是正在发生的事情: 我创建了一个从BaseOkCancelButtonForm继承的新表单

当我修改继承表单的CancelButtonText属性并重建项目时,一切都按预期进行:Cancel按钮的文本保持为我设置的文本。 但是,当我对CancelButtonVisible属性执行相同的操作时,就会出现问题。 当我将CancelButtonVisible属性设置为false并重建项目时,VS.NET会将此属性的值重置回true.:

出于这样或那样的原因,设计器不会保留更改的值?
你知道这种行为吗?我做错什么了吗?

嗯,当我在我的基本表单上设置Cancel按钮时,这似乎确实有效。 但是,我不想那样做。 此外,也没有必要这么做。。。(更改按钮的文本属性不需要像应该的那样保护按钮)

奇怪