在程序中会用到图片,有两种方法,一种是将图片放在运行文件夹中,直接调用,另一种是将图片放入资源文件中。

方法一,一般在.exe文件同级创建文件夹,如“ico”,然后把图标放进去。在程序中代码采用相对路径调用。

这种方式的优点是,以后更换图标比较方便,直接替换文件即可。

代码略。

方法二,在一些小程序中,如我们不想程序带有一系列除.exe以外的文件,可以采用导入资源文件中的形式。

导入资源文件,优点有安全、读取调用较快(资源文件序列化存储)、不会有额外的文件(嵌入到程序集中)。

做法:

1. 在程序集中添加资源文件(如果已有则不需添加)。

选则程序集,添加

选择Visual C#项,“资源文件”

添加。

2. 双击打开我们刚新建的“Resource2.resx”,这里我们就可以添加资源了。

如图所示

3. 这时,当我们上传图片的时候,程序会自动生成一个文件夹,这个文件夹放置的就是我们传上去的图片。

4.代码调用

假如我们上传了一个名叫“aaa.jpg”的图片到资源,那么代码里面就只需要这样写:

  1. Image image = Resource2.aaa;

这里需要解释一下,为什么这么简单呢,首先Resource2是一个类,它是在我们添加“系统资源文件”操作后自动创建的,aaa是它的类的一个静态属性,是当我们成功上传一个图片是自动添加的。所以我们直接写Resource2.aaa就可以了。

下面贴出Resource2类的部分代码,作参考了解。

  1. internal class Resource1 {
  2. //...
  3. /// <summary>
  4. ///   查找 System.Drawing.Bitmap 类型的本地化资源。
  5. /// </summary>
  6. internal static System.Drawing.Bitmap aaa
  7. {
  8. get
  9. {
  10. object obj = ResourceManager.GetObject("GdbConnection16", resourceCulture);
  11. return ((System.Drawing.Bitmap)(obj));
  12. }
  13. }
  14. //...

可以看到

第一,类和方法的修饰是internal,也就是只能在本程序集中调用。

第二,aaa是该类的一个静态属性,所以直接用类名调用。

第三,aaa的类型定义的Bitmap,所以我们的Image可以直接用它来赋值。

这些都是封装好了的,我们只需要按照一定的方式导入,然后用代码直接调用就OK了。

C#中资源文件的使用的更多相关文章

  1. Delphi编程中资源文件的应用

    Delphi编程中资源文件的应用/转自 http://chamlly.spaces.live.com/blog/cns!548f73d8734d3acb!236.entry一.引子: 现在的Windo ...

  2. Android中资源文件夹res/raw和assets的使用

    Android中资源文件夹res/raw和assets的使用 2011-12-08 11:05 494人阅读 评论(0) 收藏 举报 androidxml存储stringencodinglayout ...

  3. [转]VB中资源文件.res的使用方法详解

    来源:https://blog.csdn.net/miaozk2006/article/details/82417156 在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将 ...

  4. gradle项目中资源文件的相对路径打包处理技巧

    开发java application时,不管是用ant/maven/gradle中的哪种方式来构建,通常最后都会打包成一个可执行的jar包程序,而程序运行所需的一些资源文件(配置文件),比如jdbc. ...

  5. unity3d中资源文件从MAX或者MAYA中导出的注意事项

    原地址:http://blog.sina.com.cn/s/blog_6ad33d3501011ekx.html 之前在项目中,没有怎么接触过美术的软件(之前的美术团队很犀利,被他们宠坏了).在自己公 ...

  6. Java工程读取resources中资源文件路径问题

    正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资 ...

  7. QT中资源文件的使用

    1.在工程中点右键,选添加文件: 在下一页中输入一个资源文件名,如uires,这样工程树下就会出现资源文件夹. 2.右键,选择“Open in Editor”打开它 3.添加或修改前缀名,前缀的作用类 ...

  8. .NET中资源文件的使用

    工作需要,为VB.NET WinForm程序提供一个中英文界面切换功能,大方向有三个ini.XML.资源文件. 首先ini太过时,坚决不打算用.资源文件和XML相比提供了一个资源文件管理器,编写键值对 ...

  9. ResouceUtils.getFile()取不到Jar中资源文件源码小结

    Spring提供了一个工具类可以加载classpath下的文件,一般情况下无任何问题,但是当它作为公共的jar包中的工具来加载jar包中的文件时则报出找不到文件的错误. 点开看了一下这个工具类Reso ...

  10. clion中资源文件以及头文件的引用

    首先在使用clion中没有将文件target就会出现下面的错误  在使用的时候可以默认一下  在以后的使用中如果不需要某个文件时  就可以在CMakeLis.txt文件把它删除掉 在代码界面的最上面出 ...

随机推荐

  1. 每日英语:Do Bicycle Helmet Laws Really Make Riders Safer?

    Typically in transportation — and most social arenas, for that matter — laws promoting safety precau ...

  2. jQuery新建HTML Element

    举个例: 创建一个<i>HelloWorld.</i> var italicText = $("<i></i>").text(&qu ...

  3. Linux IO实时监控iostat命令详解(转载)

    简介 iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息.用户可以通过指定统计的次数和时间 ...

  4. php的json校验json-schema

    客户端和服务端的http信息传递,采用json几乎成了标配.json格式简单,易于处理,不过由于没有格式规定,无法校验. 好在php有json-schema模块,可以用来验证json是否符合规定的格式 ...

  5. web应用中幂等性的学习

    qnmd bd:待会劳资就去买个vpn. 在平常的工作中经常听到也用到幂等,却没有及时学习总结这个知识点,现在到时候了. 幂等性最初是一个数学上的概念:在某二元运算下,幂等元素是指被自己重复运算(或对 ...

  6. keepalive的作用

    keepalive的作用是实现高可用,通过VIP虚拟IP的漂移实现高可用.在相同集群内发送组播包,master主通过VRRP协议发送组播包,告诉从主的状态. 一旦主挂了从就选举新的主,实现高可用 LV ...

  7. VS Code直接调试Angular代码

    安装VS Code扩展 安装Debugger for Chrome 安装Debugger for Firefox 配置Launch.json文件 Launch.json文件的创建和生成我们可以利用VS ...

  8. Windows 安装、重装MySQL时,报错:could not start the service mysql

    原因: 卸载mysql时并没有完全删除相关文件和服务,需要手动清除. 解决方法: 首先,在管理工具->服务里面将MySQL的服务给停止(有的是没有安装成功,有这个服务,但是已经停止了的). 然后 ...

  9. 控制反转(Inversion of Control,英文缩写为IoC),另外一个名字叫做依赖注入(Dependency Injection,简称DI)

    控制反转(Inversion of Control,英文缩写为IoC),另外一个名字叫做依赖注入(Dependency Injection,简称DI),是一个重要的面向对象编程的法则来削减计算机程序的 ...

  10. 【BZOJ】1692 & 1640: [Usaco2007 Dec]队列变换(后缀数组+贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1692 http://www.lydsy.com/JudgeOnline/problem.php?id ...