2013-07-03 37 views
2

我正在嘗試向我自定義的自定義UserControl添加一些字段。我有一些我喜歡它們的字段在窗口Visual Studio中可見。我試圖使用下面的標誌,但是即使在編譯之後,我也沒有看到設計器中的字段。在設計器中顯示UserControl的公共字段

我該如何正確地做到這一點?

public partial class TosChartControl: UserControl 
{ 

    #region PUBLIC FIELDS 

    [Browsable(true)] //Added this but still does not show up 
    [Category("Data")] 
    [DefaultValue(0)] 
    [Description("ID of the Sensor Node")] 
    public int NodeId { get; set; } 

    #endregion 

    public TosChartControl() 
    { 
     InitializeComponent(); 
    } 
} 

我做了清理和重建soloution和項目,但我仍然無法在屬性窗口中看到此字段。即使重新啓動Visualstudio也沒有幫助。

+1

您可以通過逗號[attR1位,attR2位],(henginy的答案是正確的) – Sayse

+0

所以是'NodeId'在屬性窗口即將加入的屬性在一起嗎?我想它應該在那裏,如果它歸因於get/set – Sandy

+0

是的,並且應該進入數據類別 –

回答

1

更新:只有在設計人員處於另一個控件中時,您的公共屬性纔會在設計器中可見。原來你不需要需要添加這個屬性,默認情況下屬性在設計器中是可見的。據我所知,當它在另一個組件的設計視圖中時,會創建一個用戶控件實例並顯示屬性。抱歉誤導你一開始,我認爲有必要添加它。


試試這個屬性:

[可瀏覽(真)]

http://msdn.microsoft.com/en-us/library/system.componentmodel.browsableattribute.aspx

+0

謝謝。我應該在哪裏添加這個屬性?對於班級本身還是每個領域?我有一些用戶控件(由他人制作),他們工作時沒有這個屬性。 –

+0

您可以將屬性添加到成員(不是用戶控件)以NodeId爲例,例如 – henginy

+0

不知何故,它不工作:( –

0

爲了詳細說明henginy的最新答案是:

要確保你是看着一個實例您要修改屬性的控件,而不是控件本身的定義。

爲了澄清,當你添加一個屬性到您TosChartControl類,你不會看到在TosChartControl.cs [Design]選項卡中的屬性,你會看到它在那裏你實現一個TosChartControl,如您Form1.cs [Design]標籤,例如您擁有的包含控件添加了您的自定義控件。

...假設您的屬性窗口是可見的,並且您已選擇控件。

什麼本課帶走:

  • 瞭解什麼屬性窗口實際上是顯示你 - 這是上下文。

  • 模型與模型實現的區別 - 例如設計自定義控件並設計使用自定義控件的窗體。

相關問題