2012-04-06 55 views
1

我有一個用戶控件,我希望創建一個將只有在運行時可以訪問,而不是設計時的屬性。這是可能的屬性,或者我應該創建一個函數嗎?有沒有辦法讓一個屬性運行時 - 僅在.NET中?

+2

你會顯示與功能的解決方案?我無法理解你的問題。 – 2012-04-06 13:39:35

+0

我只想要一個特性,在的WinForms設計師不可見的,因爲它使程序執行時僅感。 – SharpAffair 2012-04-06 13:43:09

+0

爲什麼你要這樣做。爲什麼你在乎它是否在WinForms設計器中可見。 – 2012-04-06 13:43:20

回答

3

嘗試將這些屬性的組合:

[EditorBrowsable(EditorBrowsableState.Never)] 
[Browsable(false)] 
+0

+1,用於暗示使用.NET爲設計師提供的支持。 :) – 2012-04-06 13:53:39

+0

這不是很有幫助。將智能感知隱藏起來沒有任何意義。而[DesignTimeVisible]只能應用於一個類,而不是一個屬性。 – 2012-04-06 15:03:21

+0

@HansPassant:感謝您指出了這一點。我從我的答案中刪除了'DesignTimeOnly'屬性。是否應該從智能感知隱藏的屬性是到OP,但是這就是爲什麼我說要申請上面列出的屬性的組合。 – 2012-04-06 15:56:55

5

它只是需要的屬性。您可能需要使用[DesignTimeSerializationVisibility]所以財產的價值沒有得到在InitializeComponent()方法持續。和[Browsable],因此它在VS屬性窗口中不可見。就像這樣:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
    [Browsable(false)] 
    public int DontPersistAndDontEdit { 
     get; 
     set; 
    } 
相關問題