设计师失败,因为父表单“没有名为...的属性”

时间:2016-04-14 18:19:45

标签: c# forms inheritance

我使用了一个名为'CustomForm'的表单,以便我在所有表单中都有一致的设计。所有子表单都继承自它,就像'class childForm:CustomForm'一样。我删除了自定义窗体上的窗口边框并制作了自己的窗口边框,因此我有窗口标题的标签。我创建了一个受保护的属性来修改该标签的文本。

出于某种原因,当我尝试打开儿童形式的设计者时,它说:

  

“Quiz.CustomForm”类型没有名为“WindowTitle”的属性。

我希望能够通过设计器在表单属性的“Misc”部分中编辑此属性。这之前有用,我不知道我做了什么打扰它。如果我进入设计器文件,并进入InitalizeComponent,它会说'this.WindowTitle =“这里的字符串”'。并且没有错误,因为我在父表单中为它创建了受保护的属性。 IDE没有下划线,但是当我尝试加载设计器时,我收到了上述错误。

CustomForm类中的属性如下所示:

protected string WindowTitle
    {
        get { return lbl_windowTitle.Text; }
        set { lbl_windowTitle.Text = value; }
    }

我尝试将该物业公之于众,但没有任何区别。

2 个答案:

答案 0 :(得分:0)

您已经说过尝试使用公共财产,但是使用它并且属性属性应该可以正常工作,如我已经制作的那样:https://www.dropbox.com/s/45blckvgiz460h7/WindowsFormsApplication1.rar?dl=0

 <OTA_AirBookRQ xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="2.0.0">
      <OriginDestinationInformation>
        <FlightSegment FlightNumber="408" ArrivalDateTime="2016-02-18T17:15:00" DepartureDateTime="2016-02-18T15:35:00" NumberInParty="1" Status="NN" ResBookDesigCode="L">
          <DestinationLocation LocationCode="DEL"/>
          <MarketingAirline Code="9W" FlightNumber="408"/>
          <MarriageGrp Ind="false"/>
          <OriginLocation LocationCode="PAT"/>
        </FlightSegment>
        <FlightSegment FlightNumber="73" ArrivalDateTime="2016-02-18T20:45:00" DepartureDateTime="2016-02-18T18:30:00" NumberInParty="1" Status="NN" ResBookDesigCode="L">
          <DestinationLocation LocationCode="BBI"/>
          <MarketingAirline Code="9W" FlightNumber="73"/>
          <MarriageGrp Ind="true"/>
          <OriginLocation LocationCode="DEL"/>
        </FlightSegment>
      </OriginDestinationInformation>
</OTA_AirBookRQ>

答案 1 :(得分:0)

  

之前有效,我不知道我做了什么来打扰它。

我很确定您的(当前protectedWindowTitle属性为public,否则无法在表单属性 - 设计时支持中查看/编辑它并且System.ComponentModel一般而言)仅适用于公共属性。

我执行了类似的操作并且能够得到相同的错误。

  

我尝试将该物业公之于众,但没有任何区别。

它会有所作为。在创建属性public后,只需重建您的项目,问题就会消失。