扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1)) |
这句代码的含义就是产生一个resourcemanager对象来对form1的资源文件进行控制,由于net 会根据线程的区域属性调用窗体的不同语言的资源文件,所以我们前面示例中将改变线程区域信息的代码放在InitializeComponent()过程之前,以便net在创建resources对象时调用正确的语言资源文件。
接下来就是一大堆对控件属性进行赋值的语句了,看一下label的text 属性是如何赋值的就会明白资源数据的使用方法了。
Me.Label1.Text = resources.GetString("Label1.Text")
很简单,使用ResourceManager的方法就可以获得实际需要的资源数据了必要时可以可以使用getobjcet方法取得数据,然后再用Ctype将其转为指定的类型。
写到这儿,本来按原计划我是想收笔的,但是天气依然阴沉沉,很闷,干脆就将资源使用的终极杀招也介绍一下好了。资源发展到现在已不权是简单地解决程序国际化的界面方面了,在net中可以使用资源将任意文件嵌入到你的可执行文件中,在需要时再用流的方式读出使用(是任意文件哦,而且方法非常简单),好象很酷的样子吧。以下我就用另一个示例说明一下。
示例2:在net中可执行文件中嵌入一个文本文件。
以前我做程序,版权使用协议信息总是放在一个txt文本文件中,打包时和可执行文件放在一起,在安装时释放到程序的安装路径,然后再打开使用。这种做法有两大坏处,一是这个文件很容易被其它人修改,二是可以套用蜡笔小新的一句话:"这种做法太不成熟了吧!"。现在我使用一个新的方法,就是将协议和可执行文件结合在一起,在程序运行时读出使用,当然这就全靠资源的作用了。步骤如下:
1、在VB.net中新建一个项目,类型选择windows应用程序,项目名称改为resourcesample2。
2、点击项目菜单,选择添加现有项,接着会弹出一个文件对话框,将文件类型改为所有文件后,选择要嵌入的txt文件(其实这时你可选择任意文件,只要你喜欢*-)。接着你会在解决方案资源管理器中发现你新加入的文件名。如图:
3、关键的一步到了,在解决方案资源管理器中点击你刚加入的文件名,然后在属性窗体中将 "加成操作" 这一属性改为"嵌入的资源",这将告诉net,刚加入的文件将会作为资源链接进可执行文件中。留意一下文件名哦,这在后面的程序中也很重要,强烈建议使用小写文件名!如下图:
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click Dim tobjStream As IO.Stream = Me.GetType.Assembly.GetManifestResourceStream("resourcesample2.License.txt") Dim tobjStreamReader As New IO.StreamReader(tobjStream, System.Text.Encoding.Default) Dim tstrLicense As String = tobjStreamReader.ReadToEnd '如果是图象就可以使用dim tobjBMP as new bmp(tobjstrem)的方法直接得到资源内容 MessageBox.Show(tstrLicense)'显示刚才读得的结果 End Sub |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者