2009-08-13 105 views
0

一个奇怪的情况下,也许标题不是那么清楚,但是这是我遇到:的财产继承行为

  • 我已经创建了一个基本形式,其中包含一个确定和取消按钮(这被称为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属性,并重建项目时,一切都按预期进行:取消按钮的文本保持为我设置的文本。 但是,当我对CancelButtonVisible属性执行相同操作时,事情出错了。 当我将CancelButtonVisible属性设置为false并重建项目时,VS.NET将此属性的值重置为true。 :?

出于某种原因,设计者不会坚持改变的值? 这是知道的行为吗?难道我做错了什么 ?

回答

0

嗯,似乎这个工作时,我的基本形式的CancelButton保护。 但是,我不想这样做。 此外,它不应该这样做,以及...(和更改按钮的文本属性不需要按钮被保护,就像它应该是)...

奇怪。