2016-04-14 39 views
1

我有一個名爲'CustomForm'的窗體,我使用這個窗體是爲了讓所有窗體都具有一致的設計。所有的子窗體都從它繼承,就像'class childForm:CustomForm'一樣。我刪除了自定義窗體上的窗口邊框,並創建了自己的窗體邊框,因此我爲窗口標題添加了標籤。我創建了一個修改該標籤文本的受保護屬性。設計師失敗,因爲父窗體「沒有名爲...的屬性」

出於某種原因,當我嘗試打開一個孩子的設計師組成,它說:

類型「Quiz.CustomForm」沒有名爲「WINDOWTITLE」屬性。

我希望能夠通過設計器在表單屬性的「其他」部分編輯此屬性。這工作之前,我不知道我已經做了什麼來打擾它。如果我進入設計器文件,並進入InitalizeComponent,它說'this.WindowTitle =「這裏的字符串」'。並且沒有錯誤,因爲我在父表單中爲它創建了一個受保護的屬性。 IDE沒有強調,但是當我嘗試加載設計器時,卻收到了上述錯誤。

在CustomForm類的屬性看起來像:

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

我試圖使財產公開,但它並沒有區別。

+0

@IvanStoev OP聲稱他們在最後一句中沒有區別 – rene

+0

@rene雖然我很確定非公共屬性不會顯示在屬性網格中,所以無法通過設計器編輯它* 。所以,無論OP的聲明如何,這個問題肯定是由於財產不是「公共」而造成的。 –

回答

0

此之前曾和我不知道我做了什麼來打擾它。

我敢肯定你(目前protectedWindowTitle財產是public,否則就沒有辦法看到窗體屬性/編輯 - 設計時支持(和System.ComponentModel一般)只與工作公衆屬性。

我執行了類似的操作,並能夠得到相同的錯誤。

我試圖讓公共財產,但它沒有區別。

這將有所作爲。只需重建您的項目後,使物業public和問題將消失。

+0

你說得對。我曾嘗試將其公開,但沒有重建可能導致持續問題的項目。謝謝! –

0

你說你已經嘗試了公共財產,但使用它和屬性的屬性應該能正常運行,因爲這樣我做的:https://www.dropbox.com/s/45blckvgiz460h7/WindowsFormsApplication1.rar?dl=0

public partial class BaseForm : Form 
    { 
     public BaseForm() 
     { 
      InitializeComponent(); 
     } 

     [Browsable(true)] 
     [Category("Base Form")] 
     [Description("Define the window title.")] 
     public String WindowTitle 
     { 
      get { return label1.Text; } 
      set { label1.Text = value; } 
     } 
    } 
相關問題