社区
C#
帖子详情
有谁知道在C#中怎样使用资源?
Essence_zhx
2003-03-25 12:34:24
有谁知道在C#中怎样使用资源?
包括字符串、图标、BMP等,最好是有源代码、和一些技术性的文章。
...全文
44
4
打赏
收藏
有谁知道在C#中怎样使用资源?
有谁知道在C#中怎样使用资源? 包括字符串、图标、BMP等,最好是有源代码、和一些技术性的文章。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TheAres
2003-03-25
打赏
举报
回复
看看微软社区的这篇文章:
如何使用资源文件
http://www.microsoft.com/china/community/TechZone/TechArticle/TechDoc/how_resourcefile.asp
x
下面是我的总结:
1.用ResourceWriter产生一个资源文件.
ResourceWriter rw = new ResourceWriter("TheAres.resources");
Image myImage = Image.FromFile("C:\\logo.gif");
rw.AddResource("MyLogo",myImage);
rw.AddResource("Title","TheAres");
rw.Close();
2.将资源文件添加到工程中.类型为"嵌入的资源".
3.用ResourceManager将资源读出.
Assembly myAssem = Assembly.GetEntryAssembly();
ResourceManager rm = new ResourceManager("TheAresAdoNet.TheAres");
//TheAresAdoNet 是你程序的命名空间,TheAres是TheAres.resources
this.pictureBox1.Image = (Image)rm.GetObject("MyLogo");
this.Text = rm.GetString("Title");
复杂的资源文件,参考:
如何在C#中使用内嵌资源文件
http://www.csdn.net/develop/read_article.asp?id=15571
dy630
2003-03-25
打赏
举报
回复
在好多的C#和 .Net的论坛中都会提到如何使用内嵌资源的话题,对大多一般的数项目来说,这也许更不就不是一个问题.但是,对于一些复杂的项目,这也许就成了问题.本文会把论坛中的内容汇总一下,比起查询论坛来,文章显得更容易查找和连接.
第一件清楚的事情
在VS.Net中,有多种使用资源文件的方法,最常用的方法是让Form来保存它所使用的资源文件,这个可以通过产生一个.resx文件来保存Form所用到的资源.本文不是讨论这个话题,因为通常开发人员不会关心这个简单的问题.
第二种方法是使用资源文件,本文重点在这儿,包括如何在资源文件中添加文件,如何设置内嵌资源的”生成类型”.
名称是如何规定的?
当你使用内嵌资源文件时,通常要知道资源的名称.实际上它可以像一个文件名,但是通常会比文件名更复杂一点点.
命名一般包括三个部分:<缺省的命名空间.><扩展命命名空间.><文件名>
上面的第一部分和最后的第三部分都好理解. 缺省的命名空间就是项目的命名空间,文件名就是资源文件的名称.中间的这部分可能有些迷惑.
简单的讲,扩展命名空间就是项目中的目录结构.如果你的资源文件就在项目的根目录下,扩展命名空间就不需要了,直接这样写就可以了. <缺省的命名空间.> <文件名>. 但是如果你在项目中产生目录结果的话,就要使用使用扩展命名空间了.比如你在项目的根目录下产生了一个Images目录,那么资源文件就要这样来表示: <缺省的命名空间.> Images.<文件名>. 如果你在Images路径下还有一个目录FormGraphics,那么资源文件就要这样表示: <缺省的命名空间.> Images.FormGraphics.<文件名>
我想大家可能已经发现了上面的规律,在代码中你也可以这么写.当你在目录下使用VS自动产生了类,它也是安装这样的方式来命名类的名称. <缺省的命名空间.><扩展命命名空间.>. 虽然你可以手工的修改代码中的命名空间,但是有一点要记住,是不可以修改内嵌资源文件的命名空间结构的.
如何得到资源
普通方法
普通的使用内嵌资源文件的方法是使用Assembly类的GetManifestResource方法.在第一个演示程序中,我们会使用下面这两个方法GetManifestResourceNames, GetManifestResourceStream
这个演示程序会列举出一个装配件中的资源,可以把存选中的资源保到一个文件中.如果资源是一个图象,在程序中就可以显示出来.如果你还没有一个内嵌资源的装配件,第二个演示程序就是一个含有资源的装配件.
这是在ListBox的 ListBox's SelectedIndexChanged 事件中,如果出来资源
System.IO.Stream stream = loadedAssembly.GetManifestResourceStream(
(string) resources.SelectedItem);
System.Drawing.Image img = Image.FromStream(stream);
上面的演示程序把一个装配件调入内存,在loadedAssembly变量中存储一个Assembly实例.也许在你的应用程序中,不需要调用其他装配件的资源,你只是想能从你自己的程序中得到资源.
最简单的方法是使用Type类的Assembly属性来得到某一个类的一个实例,你可以用下面的方法来得到Type,如果是一个类,使用typeof(<class>),如果是一个类的实例变量,使用GetType().
另一种实现方法
GetManifestResourceStream有两种重载方法,一种是从一个资源文件中来得到一个Stream对象, 另一个中使用Type和string. 第二个会帮助我们得到可以使用的资源.它会根据清单资源的范围由指定类型的命名空间确定资源清单
第二个演示程序是利用上面说得第二个方法来实现的.
总结
当你理解了上面的内容后,对于VS.net内嵌资源的使用就是易于反掌了.唯一要注意的地方就是找出VS.Net给你的资源文件的名字.
yarshray
2003-03-25
打赏
举报
回复
这里要说明一点,。NET中的资源是。RESX不是普通的RES
因此是一种XML形式的资源列表,
starky
2003-03-25
打赏
举报
回复
ms-help://MS.NETFrameworkSDK.CHS/cptutorials/html/sample_resource_programs.htm
示例资源程序
ms-help://MS.NETFrameworkSDK.CHS/cptutorials/html/creating_resources.htm
创建资源
ms-help://MS.NETFrameworkSDK.CHS/cptutorials/html/retrieving_resources_using_code.htm
使用代码检索资源
C#
写的仿照Windows
资源
管理器的小程序:File Explorer(含代码)
C#
写的小程序File Explorer,仿照Windows
资源
管理器。 基本功能都已实现。
C#
实现摄像头控制
在WIN7操作系统
中
,
资源
管理器里面已经无法打开摄像头了, 这个小工具
使用
AForge类库实现
C#
操作摄像头, 代码超级简捷 , 5行核心代码解决问题所有问题.
C#
串口通信(彻底解决
C#
串口通信
中
的数据丢失问题)
以网上某位大虾的源码为版本,沿用了其可用的代码部分。对其余欠妥部分进行了改造。不要
资源
分,是大家不用为积分而烦恼。出来混都不容易,希望大家相互照应!
c#
全面经典总结
c#
全面经典总结 不错的
资源
大家分享一下啊
C#
连连看源代码
本人年前写的
C#
连连看,之前发表过一个最初的版本,现在是比较完善的,有很多功能,由于年后导师要开发其它项目,没时间再研究了,发布出来,愿大家能将其改进的更强大. 里面有好多图片
资源
和音乐
资源
,希望大家好好利用.
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章