2008-09-17 83 views
1

我有許多項目的解決方案。一個項目包含少量自定義組件。其中一個組件用於在圖像上顯示標題。我們可以改變背景的顏色和其他許多東西。當源代碼更新時C#組件不刷新

的問題是,如果我決定更改組件的背景的默認顏色或改變文本的位置,放入系統的改變不會在組件使用的解決方案的所有其他項目反映。我已經compilent組件的項目和所有其他項目通過項目引用組件。

就目前而言,我所要做的就是通過一個起飛從其他項目中的一個組件,並把它添加回去,然後一切都很好。你有快速的方法來做到這一點?

UPDATE 我在該組件中添加了一個CheckBox,看起來複選框無處不在!精細!但是當一個屬性有一個允許組件改變的標籤(例如背景顏色的例子)時,它不會更改「默認」值,而是將舊值作爲屬性中的更改值。所以,我看到了舊值設置好的一樣,如果我手動添加改變顏色時,我還沒有在屬性面板...

更新2 alt text http://img517.imageshack.us/img517/9112/oldonenewoneei0.png

更新3:

這個問題仍然存在。只是爲了讓人們知道我仍然很想找到方法。

我已經嘗試了幾條建議。

  1. 如果我清理所有解決方案並只構建具有自定義控件的項目,則構建解決方案。沒有任何變化(要測試它,我已將組件的顏色更改爲黃色,沒有任何更改:失敗
  2. 如果我刪除引用並將其添加回項目,然後重新生成解決方案,則可以看到舊顏色在設計師:失敗

我已經爲那些誰想要嘗試幫助我瞭解更多信息和圖像(上圖)更新問題

正如你所看到的。組件的舊「編譯」顯示黃色背景,但是當我插入一個新組件時(從Visual Stu中的左側工具欄中) DIO)我可以與假想的白色背景的新的組件......

+0

是否是引用項目引用(所有項目必須在相同的解決方案或DLL引用中?項目引用不應該顯示此問題 – Gishu 2008-09-17 18:00:40

+0

它是項目引用 – 2008-11-25 13:32:35

回答

1

這很可能是由於references

您的其他項目可能copy in a reference到您的組件項目。您必須重建這些其他項目才能在引用的組件項目中重新複製(如果它已更改)。它只在構建時更新。

你可以通過讓他們成爲同一個解決方案的一部分來解決這個問題。在這種情況下,您可以正確設置您的project dependencies,它應該主要自動處理您的事情。但在同一解決方案中擁有一切並不總是正確的做法。

如果你已經有了他們相同的解決方案的一部分,或者它不是一個引用的問題,這可能是由於component serialization。進行定製控制開發時,我們遇到了很多這樣的問題。

0

我的猜測是,設計師很聰明,會記住,你有它在設計器的組件的設置,因此將其視爲默認。

0

這聽起來並不常見。右擊解決方案並點擊「清理解決方案」可能會有所幫助(它會刪除每個項目的bin目錄中的所有dll和可執行文件,這會強制新版本發生)

您可能還想檢查您的構建順序序列。

0

我在一個有類似問題的項目上工作,我發現如果您觸摸.NET配置文件或程序集信息文件(取決於您的項目類型)。然後,其他項目將反映成分變化...

我不知道爲什麼會這樣,但是這是我如何克服它...

最近,我切換到經由南特建造的一切,完全照顧這個問題。

0

有時,可視設計器會序列化代碼隱藏中的所有屬性,即使它們具有默認值。

如果您的組件具有Red的默認背景顏色,並且將默認背景顏色更改爲Blue,則使用您的組件的組件將將其更改回Red。