关于C#:如何在.NET中创建和使用资源

关于C#:如何在.NET中创建和使用资源

How to create and use resources in .NET

如何创建可以在程序的各个部分轻松引用和使用的资源?

我的具体问题是我有一个NotifyIcon,我想根据程序的状态更改其图标。 这是一个常见的问题,但是我已经苦苦挣扎了很长时间。


好了,在StackOverflow周围搜索并汇总了各个要点之后(哎呀,我已经很喜欢这个地方了),大多数问题已经超过了这个阶段。我确实设法解决了我的问题。

如何创建资源:

就我而言,我想创建一个图标。无论您要添加哪种类型的数据作为资源,这都是一个相似的过程。

  • 右键单击要向其添加资源的项目。在解决方案资源管理器中执行此操作。从列表中选择"属性"选项。
  • 点击"资源"标签。
  • 栏顶部的第一个按钮将让您选择要添加的资源的类型。它应该以字符串开头。我们要添加一个图标,因此单击它,然后从选项列表中选择"图标"。
  • 接下来,移至第二个按钮"添加资源"。您可以添加新资源,或者如果已经制作了图标,也可以添加图标。按照提示选择任何选项。
  • 此时,您可以双击新添加的资源进行编辑。注意,资源也显示在解决方案资源管理器中,双击该资源同样有效。

如何使用资源:

太好了,因此我们有了新的资源,并且渴望拥有那些可爱的,不断变化的图标……我们该怎么做?好吧,幸运的是,C#使这变得异常容易。

有一个名为Properties.Resources的静态类,该类使您可以访问所有资源,因此我的代码最终变得非常简单:

1
2
3
4
5
paused = !paused;
if (paused)
    notifyIcon.Icon = Properties.Resources.RedIcon;
else
    notifyIcon.Icon = Properties.Resources.GreenIcon;

完成!完了!当您知道如何时,一切都很简单,不是吗?


上面的代码实际上对我不起作用,正如我对Visual Studio 2010所期望的那样。它不允许我访问Properties.Resources,因为权限问题,它无法访问。我最终不得不更改资源属性中的Persistence设置,然后找到了如何通过Resources.Designer.cs文件访问它的方法,该文件具有一个自动吸气剂,可以让我通过My??Namespace.Properties.Resources访问该图标。 .NameFromAddingTheResource。这将返回一个图标类型的对象,可以立即使用。


上面的方法效果很好。

另一种方法(我在这里假设是Web)是创建您的页面。将控件添加到页面。然后,在设计模式下,转到:工具>生成本地资源。资源文件将自动显示在解决方案中,页面中的所有控件都映射到该资源文件中。

要为其他语言创建资源,请在文件名的末尾附加扩展名(Account.aspx.en-US.resx,Account.aspx.es-ES.resx ...等)后再添加4个字符的语言。

要在后面的代码中检索特定条目,只需调用此方法:GetLocalResourceObject([resource entry key / name])。


推荐阅读

    linux压缩搜索命令?

    linux压缩搜索命令?,系统,文件,工具,平台,电脑,命令,网络,管理,信息,时间,lin

    linux命令引用文件名?

    linux命令引用文件名?,工作,系统,信息,命令,数据,文件,时间,灵活,名称,标准,l

    linux命令进程状态?

    linux命令进程状态?,系统,状态,进程,命令,数据,管理,软件,名称,信息,参数,Lin

    linux状态监控命令?

    linux状态监控命令?,系统,情况,工具,状态,信息,实时,环境,命令,标准,分析,Lin

    linux网卡状态命令?

    linux网卡状态命令?,系统,网络,电脑,信息,状态,地址,设备,工具,技术指标,网

    linux命令搜索命令行?

    linux命令搜索命令行?,工作,系统,地址,信息,命令,目录,基础,工具,管理,功能,l

    linux命令搜索进程?

    linux命令搜索进程?,系统,状态,软件,情况,进程,命令,代码,信息,数据,实时,如

    linux命令行打印图标?

    linux命令行打印图标?,系统,信息,工具,服务,环境,地方,数字,网络,工作,命令,l

    linux命令行打印图标?

    linux命令行打印图标?,系统,信息,工具,服务,环境,地方,数字,网络,工作,命令,l

    清空linux命令搜索?

    清空linux命令搜索?,软件,系统,情况,命令,增长,工具,号码,密码,名称,位置,如

    linux命令搜索大全?

    linux命令搜索大全?,地址,工作,系统,命令,管理,目录,标准,基础,工具,网络,lin

    linux搜索过去命令?

    linux搜索过去命令?,系统,信息,命令,名称,工作,预期,数字,地址,标准,服务,Lin

    linux命令搜索命令?

    linux命令搜索命令?,系统,位置,地址,标准,管理,信息,命令,名称,工作,文件,Lin

    linux查询状态的命令?

    linux查询状态的命令?,系统,状态,信息,管理,数据,情况,命令,综合,电脑,工具,l

    linux日志搜索命令?

    linux日志搜索命令?,信息,系统,对比,工具,一致,日志,文件,命令,实时,网络,lin

    linux命令的退出状态?

    linux命令的退出状态?,系统,状态,档案,软件,电脑,情况,异常,网络,命令,端口,

    linux命令字符搜索?

    linux命令字符搜索?,系统,工具,命令,灵活,信息,工作,字符串,文本,文件,模式,l

    linux命令中创建文本?

    linux命令中创建文本?,系统,时间,文件,终端,名字,名称,发行,命令,文件夹,文

    linux看文件状态命令?

    linux看文件状态命令?,状态,系统,服务,时间,信息,工作,电脑,管理,名称,网络,l

    linux搜索筛选命令?

    linux搜索筛选命令?,系统,数字,电脑,盘后,盘中,工具,信息,文件,命令,字符,在l