我創建了一個錯誤表單,我喜歡將其用于多個專案,而不是創建一個新的表單。錯誤表單是在專案 A 中創建的。當然,錯誤表單旨在捕獲例外。
現在我正在創建專案 B。就像我提到的,我寧愿重用專案 A 中的錯誤表單。
所以這就是我所做的:我點擊了專案 -> 添加現有專案,然后我瀏覽了專案 A 的錯誤表單的相關檔案(ErrorForm.cs、ErrorForm.Designer.cs 和 ErrorForm.resx)。我希望在專案 B 中看到所有形狀的錯誤表單。錯誤表單有一個帶有圖片集的圖片框 btw。
不幸的是,實際發生的事情:然后,我希望在專案 B 中使用專案 A 的錯誤表單。然后當我打開設計器時,我收到此錯誤:
“在全域命名空間中找不到名稱或命名空間名稱“ProjectA””。它在 ErrorForm.Designer 檔案的這一行中:
this.pictureBox1.Image = global::ProjectA.Properties.Resources._2021_04_27_182907;
我注釋掉了那條違規行。因為這沒什么大不了的,因為我以后總是可以從設計器視窗中選擇相同的影像。但是,ErrorForm 完全是空白的,就好像它是新創建的一樣!
為什么 ErrorForm 是空白的,我該如何解決這個問題?
uj5u.com熱心網友回復:
不要將 A 中的單個表單添加到 B 中。該表單使用了 A 中的資源,如果您這樣做了,則不會帶來這些資源。您應該將整個專案作為一個專案添加到解決方案中。這就像Ahmed在評論中提到的,添加一個dll并參考它,除了它在編譯之前提前一步添加專案。這意味著您可以在解決方案中調整專案的代碼,而不是切換到另一個 VS、更新代碼、重新編譯它、參考更新的 dll……如果您將一些依賴專案帶入解決方案,VS 會為您完成所有這些作業;它會將dll專案A編譯為專案B的依賴項
- 右鍵單擊解決方案并選擇添加現有專案。
- 在檔案選擇器中,從專案 A 中選擇 csproj 以將整個專案 A 納入解決方案。
- 將專案 A 的輸出型別(在專案 A 屬性中)更改為類別庫。
- 在專案 B 中,添加對專案 A 的參考,右鍵單擊“參考”,選擇“添加”,在出現的面板中選擇“專案”并勾選“專案 A”
你現在可以在你的任何專案 B 類中做一個using ProjectA(我假設錯誤表單只是在那個命名空間中,而不是更深的一個;它是,相應地調整 - 如果你指向燈泡,vs 會幫助你在邊緣/任何紅色擺動線旁邊),然后您就可以創建一個new ErrorForm
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/318267.html
上一篇:FormattedText在UltraWinGrid中不起作用
下一篇:如何允許用戶更改下載路徑?
