編輯:這主要是針對VS2008之前的VS版本,它不允許您更改RE資源的訪問級別修改器。其他的選擇是外部工具或反射,但仍然沒有向設計師公開資源。
DLL資源在運行時非常容易,但不在設計器中。您需要在DLL中編寫一個小代理以按名稱獲取圖像。 DLL:
Public Class ResMgr
' depending on what else is in the DLL, can just add to an existing class
Public Function GetImage(imgName As String) As Image
Return My.Resources.ResourceManager.GetObject(imgName)
End Function
'' alternatively declare it SHARED eg
''Public Shared Function/Property GetImage As Image
End Class
應用:
MyRM = New ResMgr
thisImg = New Image
thisImg = MyRM.GetImage(userImg)
如果您構建它作爲Shared
方法,它僅僅是:
thisImg = ResMgr.GetImage(userImg)
如果你願意,你可以在DLL中揭露一個枚舉充當資源清單:
Public Enum ResImg
Image1 ' use the names of the images
Backup52
Flag_FR
Flag_RUS
...
End Enum
DLL函數可以對ResImg起作用並使用大的case語句,也可以使用[Enum].GetNames
來轉換/獲取一組圖像資源名稱。
您是否讓資源文件公開? – VahiD
我不知道你在想什麼,但是在myCommonDll.My.Resources.Images和myCommonDll.My.Resources.Icons中有很多文件。如果這是你的意思,我從相關的組合框設置「訪問修飾符」爲「公共」? –
是的,這就是我的意思,但經過評論,我意識到,即使您將Access Modifier設置爲public,您也無法在設計器中使用資源查看其他項目設置圖像的資源,但我認爲它無法完成 – VahiD