编辑:这主要适用于 VS2008 之前的 VS 版本,它不允许您更改资源的访问级别修饰符。其他替代方法是外部工具或反射,但仍然没有向设计人员公开资源。
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 中公开一个 Enum 以充当资源清单:
Public Enum ResImg
Image1 ' use the names of the images
Backup52
Flag_FR
Flag_RUS
...
End Enum
DLL 函数可以作用于 ResImg 并使用大 case 语句,也可以用于[Enum].GetNames
转换/获取图像资源名称数组。