博客
关于我
.net 资源文件的创建及使用
阅读量:801 次
发布时间:2023-04-04

本文共 3071 字,大约阅读时间需要 10 分钟。

一、资源文件

资源文件是程序设计中用来存储可重用的资源数据的文件。与源程序独立,能够被多个程序共享。Visual C#中,资源文件主要存储三种类型的数据:字节数组、对象和字符串。本文将通过代码示例,详细说明如何使用Visual C#创建资源文件。

二、创建资源文件所需的类

在Net Framework SDK中,System.Resources命名空间提供了用于创建、存储和管理资源文件的类。其中,ResourceWriter类是核心工具,用于生成和配置资源文件。

三、创建资源文件的步骤

  • 继承ResourceWriter类

    首先需要创建一个ResourceWriter实例,并指定资源文件的名称。

    ResourceWriter rw = new ResourceWriter("My.resources");
  • 生成资源文件

    调用Generate()方法创建资源文件。

    rw.Generate();
  • 添加资源

    使用AddResource()方法将不同类型的资源添加到文件中。

    • 字节数组:
    public void AddResource(string name, byte[] data);
    • 对象:
    public void AddResource(string name, object obj);
    • 字符串:
    public void AddResource(string name, string value);
  • 四、示例:创建资源文件

    public static void CreateRe(){    ResourceWriter rw = new ResourceWriter("My.resources");    Image image1 = Image.FromFile("../../Images/1.jpg");    Image image2 = Image.FromFile("../../Images/2.jpg");    Icon ic = new Icon("../../Images/3.ico");    rw.AddResource("1", image1);    rw.AddResource("2", image2);    rw.AddResource("3", ic);    rw.AddResource("4", "这是从资源文件中获取的字符串!");    rw.Generate();    rw.Close();}

    五、将资源文件添加到项目

  • 在资源管理器中选择文件
  • 拖动文件到项目中
  • 右键单击文件,选择属性
  • 勾选“嵌入的资源”
  • 六、管理资源文件中的资源

    在程序中使用ResourceManager类管理资源文件。

    ResourceManager rm = new ResourceManager("CResources.My", Assembly.GetExecutingAssembly());

    七、使用资源文件中的资源

    • 获取字符串:
      String s = rm.GetString("MyStr");
    • 获取图标:
      Icon ico = rm.GetObject("demo.ico") as Icon;
    • 获取图片:
      Image img = rm.GetObject("ok-off.png") as Image;

    八、完整示例代码

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Resources;using System.Reflection;namespace CResources{    public partial class Form1 : Form    {        ResourceManager rm = new ResourceManager("CResources.My", Assembly.GetExecutingAssembly());        private void btnCreateResources_Click(object sender, EventArgs e)        {            CreateRe();        }        public static void CreateRe()        {            ResourceWriter rw = new ResourceWriter("My.resources");            Image image1 = Image.FromFile("../../Images/1.jpg");            Image image2 = Image.FromFile("../../Images/2.jpg");            Icon ic = new Icon("../../Images/3.ico");            rw.AddResource("1", image1);            rw.AddResource("2", image2);            rw.AddResource("3", ic);            rw.AddResource("4", "这是从资源文件中获取的字符串!");            rw.Generate();            rw.Close();        }        private void btnGetPic_Click(object sender, EventArgs e)        {            this.picBox1.Image = (Bitmap)rm.GetObject("1");        }        private void btnGetPic2_Click(object sender, EventArgs e)        {            this.picBox1.Image = (Bitmap)rm.GetObject("2");        }        private void btnGetString_Click(object sender, EventArgs e)        {            this.lbl.Text = rm.GetString("4");        }        private void btnGetIco_Click(object sender, EventArgs e)        {            this.Icon = (Icon)rm.GetObject("3");        }    }}

    结语

    通过以上方法,可以轻松创建和管理Visual C#资源文件,并在程序中高效使用资源数据。资源文件的应用场景广泛,能够提升程序的可维护性和安全性。

    转载地址:http://uirfk.baihongyu.com/

    你可能感兴趣的文章
    MYSQL中TINYINT的取值范围
    查看>>
    MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
    查看>>
    Mysql中varchar类型数字排序不对踩坑记录
    查看>>
    MySQL中一条SQL语句到底是如何执行的呢?
    查看>>
    MySQL中你必须知道的10件事,1.5万字!
    查看>>
    MySQL中使用IN()查询到底走不走索引?
    查看>>
    Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
    查看>>
    MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
    查看>>
    mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
    查看>>
    mysql中出现Unit mysql.service could not be found 的解决方法
    查看>>
    mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
    查看>>
    Mysql中各类锁的机制图文详细解析(全)
    查看>>
    MySQL中地理位置数据扩展geometry的使用心得
    查看>>
    Mysql中存储引擎简介、修改、查询、选择
    查看>>
    Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
    查看>>
    mysql中实现rownum,对结果进行排序
    查看>>
    mysql中对于数据库的基本操作
    查看>>
    Mysql中常用函数的使用示例
    查看>>
    MySql中怎样使用case-when实现判断查询结果返回
    查看>>
    Mysql中怎样使用update更新某列的数据减去指定值
    查看>>