vb.net 教程 3-12 资源文件 2-2
作者:互联网
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
单独的资源文件dll的使用比项目中资源文件的使用略为麻烦。
新建一个项目,添加现有项
从“添加现有项”对话框中选择上一小节编译出来的resource.dll,
从解决方案资源管理器中选中加入的resource.dll,从下方的属性对话框中,将“复制到输出目录”设置为“如果较新则复制”。
注意:以上步骤并非必须,这里只是为了像其他真正的软件,确保dll文件或者其他文件同可执行文件在一个目录。
窗口设计界面:
具体代码:
1、窗体代码引用System.Reflection命名空间:
Imports System.Reflection
System.Reflection 命名空间包含通过检查托管代码中程序集、模块、成员、参数和其他实体的元数据来检索其相关信息的类型。
2、建立两个窗体级的变量用来记录使用的字符串和图片的编号:
Dim picIndex As Integer
Dim strIndex As Integer
3、当窗体载入的时候,使编号为1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
picIndex = 1
strIndex = 1
End Sub
4、图片资源的调用:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myResource As Assembly
myResource = Assembly.LoadFile(Application.StartupPath & "\" & "resource.dll")
Dim myResourceManager As System.Resources.ResourceManager
myResourceManager = New System.Resources.ResourceManager("resource.Resource1", myResource)
Dim myPic As Bitmap
Dim resourceName As String
resourceName = "Pic" & picIndex
If picIndex = 1 Then picIndex = 2 Else picIndex = 1
myPic = myResourceManager.GetObject(resourceName)
PictureBox1.Image = myPic
End Sub
5、字符串资源的调用
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim myResource As Assembly
myResource = Assembly.LoadFile(Application.StartupPath & "\" & "resource.dll")
Dim myResourceManager As System.Resources.ResourceManager
myResourceManager = New System.Resources.ResourceManager("resource.Resource1", myResource)
Dim myString As String
Dim resourceName As String
resourceName = "String" & strIndex
If strIndex = 1 Then strIndex = 2 Else strIndex = 1
myString = myResourceManager.GetString(resourceName)
TextBox1.Text = myString
End Sub
运行结果如图:
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看vb.net教程 目录
————————————————
版权声明:本文为CSDN博主「VB.Net」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
标签:picIndex,Dim,vb,12,myResourceManager,System,resourceName,net,strIndex 来源: https://blog.csdn.net/chinaherolts2008/article/details/120131676