VS资源

     在第一次使用VS的资源时,曾经感到困惑,不知道怎么调用资源,现在将VS中使用资源的两种方法写出来,供需要的人参考。

 

方法一:

vs中生成windows应用程序时,系统会自动生成一个Resources.Designer.cs的文件,这个文件中定义的是一个类,这个类中包含的是项目中的资源信息。这个类名系统为我们定义为Resources。当我们在资源编辑器中为项目添加资源时,系统会自动在Resources类中为我们添加一个internal static类型的属性,这个属性就是程序中对此资源的引用。比如:

 

//我们在项目中添加了一个位图资源

//系统为我们在Resources类中添加了一个Bitmap属性

internal static System.Drawing.Bitmap ball {

            get {

                object obj = ResourceManager.GetObject("ball", resourceCulture);

                return ((System.Drawing.Bitmap)(obj));

            }

        }

 

//在程序中就可以通过以下方式来访问资源

Bitmap bt = Resources.ball

 

 

 

方法二: 

上面是利用VS来产生的资源,我们也可以在项目中添加自己的资源。在c#中提供了System.Resources命名空间,在此命名空间中,有很多的操作资源文件的类和接口。

首先我们定义一个ResourceWriter类的对象,然后调用其方法,就可以在硬盘上产生一个资源文件了。

ResourceWriter rw = new ResourceWriter ( "My.resources" ) ; // 为了方便起见,资源文件名最好为//*.resources 类型的,因为在引用资源文件时要取前面的*作为根名称

//rw.Generate ( ) ;

执行这两句后,在项目当前目录下就会产生一个名称为My.resources的文件,这就是刚刚产生的资源文件,现在这个资源文件是空的,我们要想其中添加资源。

添加资源的方法分为三种:一种是添加字符串资源,一种是添加其他的对象资源,分别使用以下函数:

Public void AddResourcestring byte【】); //添加字节数组

Public void AddResourcestring object); //添加其他类型资源

Public void AddResourcestring string); //添加字符串

两个函数string是添加资源的唯一的标志。

例如:

Icon ico = new Icon ( "Demo.ico" ) ;
Image canceloff = Image.FromFile ("cancel-off.png") ;

rw.AddResource ( "demo.ico" , ico ) ;//在资源文件中加入图标

rw.AddResource ( "cancel-off.png" , canceloff ) ;  //在资源中加入图像

rw.AddResource ( "MyStr" , "从资源文件中读取字符串!" ); //在资源中加入字符串

添加完后就可以关闭资源文件了

rw.Generate ( ) ;    //将添加的资源以系统默认的格式保存在磁盘上

rw.Close ( ) ;

这样整个创建资源文件的过程已经完成了,其中要注意:rw.Generate ( ) ;是打开资源文件,它必须房子Add函数之后。

在我们执行上面的代码后就会产生一个资源文件,我们下面要进行操作是对此文件进行的操作。

我们创建资源文件后,下面就是引用创建的资源。

首先,在项目解决方案目录中把刚才创建的文件添加到工程中,此时我们必须把资源房子目录Properties之下,及处在命名空间Project1.Properties之中。

使用ResourcesManager类来取出资源:

ResourceManager rm = new ResourceManager ( "Project1.Properties.My" ,

 Assembly.GetExecutingAssembly ( ) ) ;

此函数中"Images" 必须为字符文件所在命名空间 . 根名称 如果第一个参数写错,就会产生异常。

使用这种方法产生的exe文件不需要资源文件处在同一目录中,因为这种方法是把资源文件载入项目中。

还有一种方法,是从exe当前目录中寻找资源文件,这种方法要求资源文件和exe文件放在同一目录下才能执行。

ResourceManager rm = ResourceManager.CreateFileBasedResourceManager("My", ".", null);

第一个参数为资源文件的根目录。

这两种方法均可以打开一个资源文件,现在要取出文件中的资源了,这里类为我们提供了两个方法:

Object GetStringstring);  //取得字符串

Object GetObjectstring); //取得其他资源

例如:

String s = ( ( String ) rm.GetString ( "MyStr" ) ) ;

Icon icoDemo = ( ( Icon ) rm.GetObject ( "demo.ico" ) ) ;

Image a = ( ( Image ) ( rm.GetObject ( "ok-off.png" ) ) ) ;

这样我们就可以对资源进行操作了。

 

 

以上就是vs中资源的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值