文谷首页 | 业界传真 | 网络技术 | 服务器 | 数据库 | 存储技术 | 系统安全 | 无线技术 | Cisco | .Net | Windows | Linux | Unix | Java
电子商务 | 网站工程 | 网页设计 | 平面设计 | 多媒体 | 编程语言 | Oracle | MSSQL | Photoshop | ASP | PHP | 实用技巧 | 进程查询 | 文谷论坛
 websphere   .net framework
您现在的位置: IT文谷 >> 开发平台 >> .net framework >> .NET Framework >> 文章正文
Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础
Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础
Microsoft .NET 框架资源基础

Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础

 

资源管理器

ResourceManager 类也来自 System.Resources 命名空间,该类包装了 ResourceReader,用于在构造时枚举资源,并使用其名称公开它们:

public Form1() {

  ...



  // Get this type's assembly

  Assembly assem = this.GetType().Assembly;



  // Load the .resources file into the ResourceManager

  // Assumes a file named "Resource1.resx" as part of the project

  ResourceManager resman =

    new ResourceManager("ResourcesApp.Resource1", assem);



  // Set form caption from string resource

  this.Text = (string)resman.GetObject("MyString"); // The hard way

  this.Text = resman.GetString("MyString"); // The easy way

}

    用来查找 .resources 文件的命名方式与命名任何其他种类的资源相同(注意追加到 resource1.resources 文件中的项目默认命名空间的使用方法),只是 .resources 扩展名是假定的,并且不能包括在名称中。为了更方便,如果您碰巧将一个 .resx 文件命名为类型名称,则 .resources 文件和程序集的名称将从类型确定:

// Use the type to determine resource name and assembly

ResourceManager resman = new ResourceManager(this.GetType());

    一旦已经创建了资源管理器的实例,就可以通过使用 getobject 方法并强制转换为合适的类型,从而按名称找到嵌套资源。如果使用 .resx 文件来处理字符串资源,则可以使用 getstring 方法,该方法将执行到 system.string 类型的强制转换。

 

设计器资源

    缺少用于 .resx 文件的合适的编辑器使它们在使用除字符串资源以外的任何其他资源时非常困难。您不仅必须通过手动编写代码才能在运行时输入数据,而且无法在设计时看见资源的使用情况;例如,窗体的背景图像。

    幸运的是,设计器再次在这里帮助了我们。如果打开 Visual Studio .NET Solution Explorer,并选择 show All Files 按钮,您将看见每个组件(无论它是窗体、控件还是简单的组件)都有相应的 .resx 文件。这是为了让资源与组件的属性保持关联,这种关联是在 Property Browser 中设置的。例如,如果设置窗体的 backgroundimage 属性,那么不仅在设计器中窗体将显示背景图像,而且窗体的 .resx 文件将包含该图像的对应项。同样,如果在相同窗体上设置 PictureBox 控件的 image 属性,则 .resx 文件同样会增大以便包括该资源。这两项都可以在图 7 中看到。

winforms02202003-fig07

图 7. 组件的 .resx 文件

   每个组件的 .resx 文件将作为 .resources 文件进行编译和嵌入,就像已经将您自己的 .resx 文件添加到项目中一样,这将使资源能够在运行时被组件使用。除了组件的 .resx 文件中的项之外,设计器还会将代码添加到 initializecomponent 中,以便加载组件的资源管理器,并使用从资源获得的对象来填充组件的属性:

namespace ResourcesApp {

  public class Form1 : Form {

    ...

    private void InitializeComponent() {

      ResourceManager resources = new ResourceManager(typeof(Form1));

      ...

      this.pictureBox1.Image =

        (System.Drawing.Bitmap)resources.GetObject("pictureBox1.Image");

      ...

      this.BackgroundImage =

        (System.Drawing.Bitmap)resources.GetObject("$this.BackgroundImage");



      ...

    }

  }

}

   注意 resourcemanager 对象是使用组件的类型来构造的,该类型用来构造组件的 .resources 资源名称。还要注意设计器在命名资源时所使用的命名约定。对于组件字段上的属性,名称的格式是:

<fieldName>.<propertyName>

对于组件本身的属性,名称格式是:

$this.<propertyName>

    如果您想添加供组件本身使用的自定义字符串属性,您可以这样做,但要确保与设计器生成的名称格式不同。

上一页  [1] [2] [3] 

上一页  [1] [2] [3] 

Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础


  • 上一篇文章:

  • 下一篇文章:
  • 进入论坛讨论

    相关文章
    基于.NET的多线程编程入门
    VS2005常用插件搜罗
    .net中用GDI+提高gif图片保存画质
    VS.NET:通过Web服务瞄准电子商务
    对象设计中创建VS使用
    安装/初始化/个性化DotNetNuke
    介绍dotnet原动力(DNN)
    GDI+编程10个基本技巧
    DTE .NET工程的自动化编译
    .Net中如何操作IIS的原理分析
    VS.NETRC5无法创建Add-IN工程
    .NET中带有口令加密的注册页面
    热门文章最新推荐

    版权与免责声明:
    ① 本网转载其他媒体稿件是为传播更多的信息,此类稿件不代表本网观点,版权归原作者所有,本网不承担此类稿件侵权行为的连带责任。
    ② 在本网BBS上发表言论者,文责自负。
    ③ 如您因版权等问题需要与本网联络,请在30日内联系 。
    Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础
    Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础2006-7-15Microsoft .NET 框架资源基础

    .net framework专题
    人气排行
  • 此栏目下没有文章
  • 最近更新
    普通文章技术介绍 新数据网格简介
    普通文章.NET 开发人员该下载的十个必备
    普通文章深入剖析Asp.net资源文件
    普通文章通过事例学习.net的WebForms技
    普通文章ASP.NET Tips1---合并多个字段
    普通文章微软明年1月份出台.NET专业开发
    普通文章微软下月底前完成Vista大部分功
    普通文章揭开微软 .NET 认证考试的面纱
    普通文章Visual Studio:Microsoft开发工
    普通文章Visual Studio:Microsoft开发工
    全站热点       
    最新推荐
    关于文谷 | 联系文谷 | 免责声明 | 文谷社区
    Tel: 0577-65690019    E-mail: ichenjian@gmail.com    MSN:ichenjian@hotmail.com    QQ:2911194
    Copyright © 2004-2006 wengu.org 文谷 All Rights Reserved
    浙ICP备05000327号