【问题标题】:.NET Custom Control Resources.resx.NET 自定义控件资源.resx
【发布时间】:2011-01-20 14:58:04
【问题描述】:

我有一个从 Resources.resx 加载图像的 C# 自定义控件。我将这些资源加载到项目的资源中,然后像这样访问它们:

ProjectNamespace.Properties.Resources.resourcename;

这适用于一个项目,但现在我想在多个项目中使用我的控件。

处理此问题的最佳方法是什么?将资源加载到控件 .resx 中?我如何从那里访问它们?还是我应该以完全不同的方式处理这个问题?

【问题讨论】:

    标签: c# .net resources resx


    【解决方案1】:

    它应该按原样工作,即使您的控件是从其他项目中使用的。

    VS 生成的代码是 ResourceManager 类的包装器,它以构造函数参数的形式提供控件的程序集。所以,ResourceManager 总是知道去哪里寻找资源。

    【讨论】:

    • @Timores,谢谢。我的麻烦是“ProjectNamespace”会因我包含我的控件的每个项目而改变。我将我的控件作为“链接”添加到项目中,而不是作为参考,因为我希望它内置到 DLL 中。我不确定如何动态获取“ProjectNamespace”。
    • 我明白了。在这种情况下,您必须忘记 VS 生成的代码并自己创建 ResourceManager 的实例,并将 this.GetType() 作为参数。然后要访问一个名为resourcename的字符串,直接调用GetString方法(或者其他类型的ResourceManager的其他方法)。更好的是,创建一个模仿 VS 的小型辅助类。重要的是它接收控件的类型以便获得正确的命名空间。
    猜你喜欢
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多