2010-03-16 56 views
0

我查看了DesignOnly屬性,但這似乎並沒有達到我想要的*。基本上,我正在尋找某種方式來指示用戶控件的某些屬性(假設Text)可以在設計時進行修改 - 即從VS中的Windows窗體設計器(或者可能來自任何GUI可以用來修改Windows窗體GUI的設計器) - 但在運行時不是而是。一旦應用程序運行,該屬性應該有效地爲readonly有沒有辦法讓用戶控件的屬性只在設計時被修改?

這可能嗎?

* 當我將DesignOnly屬性添加到一個屬性時,我從設計模式中爲該屬性選擇的值似乎並不堅持;該屬性最終成爲默認情況下在代碼中設置的任何內容。

回答

1

您可以在您的應用程序中放置一個公共靜態變量,您可以在main()方法中將其設置爲true。 然後,您可以測試該變量是否已設置。如果是這樣,那麼程序已經正常啓動了,否則我們顯然會在設計器中運行。

+0

我想這確實是最有意義的。 – 2010-03-16 18:03:59

+1

@Dan:使用控件的DesignMode屬性也很有意義。 – 2010-03-16 21:07:43

0

需要注意的是設計時支持這可能是重要的是運行時支持。您的對象由IDE在後臺放置。 Designer支持只是一堆IDE元數據,允許Visual Studio(或其他設計者)構建對象的圖形表示。

運行時間和設計時間之間沒有「實際」差異。如果你想看看我在說什麼,請嘗試在你的某個屬性中投擲一個NotImplementedException,並嘗試在設計器中設置它。

0

你不能這樣做 - VS表單設計器生成的代碼在運行時就像任何其他代碼一樣運行;所以你無法區分VS表單代碼和用戶代碼。看看InitializeComponent方法 - 當表單創建時,它就像任何其他代碼一樣運行。

相關問題