C#中资源文件的使用
在程序中会用到图片,有两种方法,一种是将图片放在运行文件夹中,直接调用,另一种是将图片放入资源文件中。
方法一,一般在.exe文件同级创建文件夹,如“ico”,然后把图标放进去。在程序中代码采用相对路径调用。
这种方式的优点是,以后更换图标比较方便,直接替换文件即可。
代码略。
方法二,在一些小程序中,如我们不想程序带有一系列除.exe以外的文件,可以采用导入资源文件中的形式。
导入资源文件,优点有安全、读取调用较快(资源文件序列化存储)、不会有额外的文件(嵌入到程序集中)。
做法:
1. 在程序集中添加资源文件(如果已有则不需添加)。
选则程序集,添加
选择Visual C#项,“资源文件”
添加。
2. 双击打开我们刚新建的“Resource2.resx”,这里我们就可以添加资源了。
如图所示
3. 这时,当我们上传图片的时候,程序会自动生成一个文件夹,这个文件夹放置的就是我们传上去的图片。
4.代码调用
假如我们上传了一个名叫“aaa.jpg”的图片到资源,那么代码里面就只需要这样写:
- Image image = Resource2.aaa;
这里需要解释一下,为什么这么简单呢,首先Resource2是一个类,它是在我们添加“系统资源文件”操作后自动创建的,aaa是它的类的一个静态属性,是当我们成功上传一个图片是自动添加的。所以我们直接写Resource2.aaa就可以了。
下面贴出Resource2类的部分代码,作参考了解。
- internal class Resource1 {
- //...
- /// <summary>
- /// 查找 System.Drawing.Bitmap 类型的本地化资源。
- /// </summary>
- internal static System.Drawing.Bitmap aaa
- {
- get
- {
- object obj = ResourceManager.GetObject("GdbConnection16", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
- //...
可以看到
第一,类和方法的修饰是internal,也就是只能在本程序集中调用。
第二,aaa是该类的一个静态属性,所以直接用类名调用。
第三,aaa的类型定义的Bitmap,所以我们的Image可以直接用它来赋值。
这些都是封装好了的,我们只需要按照一定的方式导入,然后用代码直接调用就OK了。
C#中资源文件的使用的更多相关文章
- Delphi编程中资源文件的应用
Delphi编程中资源文件的应用/转自 http://chamlly.spaces.live.com/blog/cns!548f73d8734d3acb!236.entry一.引子: 现在的Windo ...
- Android中资源文件夹res/raw和assets的使用
Android中资源文件夹res/raw和assets的使用 2011-12-08 11:05 494人阅读 评论(0) 收藏 举报 androidxml存储stringencodinglayout ...
- [转]VB中资源文件.res的使用方法详解
来源:https://blog.csdn.net/miaozk2006/article/details/82417156 在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将 ...
- gradle项目中资源文件的相对路径打包处理技巧
开发java application时,不管是用ant/maven/gradle中的哪种方式来构建,通常最后都会打包成一个可执行的jar包程序,而程序运行所需的一些资源文件(配置文件),比如jdbc. ...
- unity3d中资源文件从MAX或者MAYA中导出的注意事项
原地址:http://blog.sina.com.cn/s/blog_6ad33d3501011ekx.html 之前在项目中,没有怎么接触过美术的软件(之前的美术团队很犀利,被他们宠坏了).在自己公 ...
- Java工程读取resources中资源文件路径问题
正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资 ...
- QT中资源文件的使用
1.在工程中点右键,选添加文件: 在下一页中输入一个资源文件名,如uires,这样工程树下就会出现资源文件夹. 2.右键,选择“Open in Editor”打开它 3.添加或修改前缀名,前缀的作用类 ...
- .NET中资源文件的使用
工作需要,为VB.NET WinForm程序提供一个中英文界面切换功能,大方向有三个ini.XML.资源文件. 首先ini太过时,坚决不打算用.资源文件和XML相比提供了一个资源文件管理器,编写键值对 ...
- ResouceUtils.getFile()取不到Jar中资源文件源码小结
Spring提供了一个工具类可以加载classpath下的文件,一般情况下无任何问题,但是当它作为公共的jar包中的工具来加载jar包中的文件时则报出找不到文件的错误. 点开看了一下这个工具类Reso ...
- clion中资源文件以及头文件的引用
首先在使用clion中没有将文件target就会出现下面的错误 在使用的时候可以默认一下 在以后的使用中如果不需要某个文件时 就可以在CMakeLis.txt文件把它删除掉 在代码界面的最上面出 ...
随机推荐
- Node.js综述
前言 本综述文章旨在帮助读者深入理解下Node.js的本质,不去关注应用的细节,我认为真正的技术问题只有在动手写代码的时候才会遇到,那个阶段解决问题才是真正有意义的. 发展史 Node.js是Ry ...
- CHero
#ifndef __HERO_H__ #define __HERO_H__ #include "GameFrameHead.h" #include "GameParam. ...
- CSS3 Flex布局(伸缩布局盒模型)学习
CSS3 Flex布局(伸缩布局盒模型)学习 转自:http://www.xifengxx.com/web-front-end/1408.html CSS2定义了四种布局:块布局.行内布局.表格布局盒 ...
- EAV/ESS 8.x 自定义服务器正确方法+更新服务器列表
下面用64位的ESET Smart Security 8.0.319.1进行设置自定义更新服务器说明(注:修改方法32位和64位通用) 1. 让我们先看一下ESET Smart Security 8 ...
- Roslyn介绍
介绍 一般来说,编译器是一个黑箱,源代码从一端进入,然后箱子中发生一些奇妙的变化,最后从另一端出来目标文件或程序集.编译器施展它们的魔法,它们必须对所处理的代码进行深入的理解,不过相关知识不是每个人都 ...
- java web 自定义filter
filter顾名思义,过滤器的意思,在javaweb中的Struts就利用了这种机制去实现视图和业务分离. 这里来配置下自己的Filter来理解下Struts的内在. 在web.xml 中添加下面: ...
- osgi实战学习之路:6. Service-1
什么是Service? 它是注冊到osgi的一个java对象 Service注冊: 通过BundleContext::registerService(java.lang.String[] clazze ...
- 应用DataAdapter对象填充DataSet数据集
private void Form1_Load(object sender, EventArgs e) { string strCon = "Server=localhost;User Id ...
- HDFS的实现机制
参考以上这张图,实际上我们客户端访问HDFS里面的内容时,并不需要真实知道内容存在于服务器的内容的真实路径,我们只需要知道一个虚拟路径就可以,比如最上面的hdfs://weekend110:9000/ ...
- centos配置ssh免密码登录后,仍提示输入密码
配置SSH无密码登录需要3步: 1.生成公钥和私钥 2.导入公钥到认证文件,更改权限 3.测试 1.生成公钥和私钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默 ...