2011-02-16 152 views
3

我試圖瞭解資源。在VS當我創建的項目:
-there是Form1中Form1.resx中 -there是Resources.resx屬性Form1資源vs項目資源

我不知道該用哪一個。顯然我不能使用Form1.resx。當我嘗試在那裏添加某些東西時,我會收到警告,說它可能會搞亂這個項目。另外,我無法訪問它。 如果我使用屬性下的Resources.resx,我可以使用Properties.Resources。(filename)輕鬆訪問那裏的文件。 這兩者之間還有什麼區別? Form1.resx有什麼好處? 謝謝

回答

0

Form1.resx是爲表單定義的,它定義了它作爲控件的作用。當您使用VS設計器對UI進行更改時,您也不應該嘗試手動編輯這一個,因爲它會被重新生成。

Resources.resx用於整個項目的全局(公共)資源。通常意味着分享的東西!

+0

哦,所以Form1.resx是由設計師生成的,不是嗎? – FlyBoy 2011-02-16 08:21:52

0

Form1.resx非常適合將圖形對象直接嵌入到Form1代碼文件中。這種方式很容易將您的表單剪切並粘貼到其他項目中。另外,如果您創建另一個稱爲Form2的Form1副本,則可以對其中一個進行更改,而不必擔心影響其他表單的更改。 Resources.resx的工作方式恰恰相反。如果您在Resources.resx中更改了資源,則所有使用該資源的類都將被更新。例如,如果您有文件路徑資源並且您更改了路徑,則引用該資源的所有類都將獲得更新的路徑。

0

當你在Visual Studio中使用resx文件時,要格外小心!

當您嘗試更改/添加/編輯/刪除表單的關卡資源時,您很可能會崩潰您的項目。

你最好使用項目的級別資源文件。

有幾種類型的資源,如字符串,圖像,音頻,圖標,文件等

項目級別的資源是共享資源,有用的 - 主要是圖形 - 所有的形式中:

你從項目菜單/ myProject的屬性/資源/添加現有文件菜單項導入圖形一次。

警惕的是一旦你添加了一個資源,並用你的項目範圍內的資源,你不應該從資源文件是內部消除某些你不要再使用它刪除,否則資源將被刪除,但不會引用它,並且您將得到編譯時錯誤,甚至更糟糕的是,運行時錯誤。

同樣,imageList控件在窗體的級別嵌入圖形。但是這些不能在表單之間共享,所以如果你認爲你要重新使用一個圖形,你最好把它作爲一個全局資源添加到應用程序 - 項目級別。

此外,imagelist非常難以維護 - 進化。

若要將現有表單複製到新的,在同一個項目或另一個項目中,請勿複製/粘貼formxxx.vb文件。 同樣,請勿將resx文件從一個項目複製/粘貼到另一個項目。

這裏是相當麻煩的過程中,你應該使用:

1 - 爲了一個形式複製到同一個項目:

提供沒有自定義窗體的水平資源(由您添加的): 創建一個新的空白表單並使其與原始表單的大小相同(以及其他所需的屬性)。是的,手動。

從原始窗體的設計類型Ctrl + A中選擇所有控件,並將它們複製到新窗體中。

他們會保留他們的名字和屬性。

對代碼執行相同操作:複製/粘貼。 注重刪除後導入1號線:公共類myOriginalForm

2 - 形成(S)複製到另一個項目,應先確保所有項目的級別的資源是相同的。而不是通過從資源文件夾中複製個別資源!

相反,小心使用添加現有資源菜單項導入新項目中的資源。您一次可以導入多個項目。

這樣,您的資源將被正確引用。