Visual C# 更改控件上的图像会产生异常

Posted

技术标签:

【中文标题】Visual C# 更改控件上的图像会产生异常【英文标题】:Visual C# changing image on control gives exception 【发布时间】:2016-04-30 03:05:04 【问题描述】:

我正在用 C# 编写一个插件,其中我有一个带有 linklabel 的用户控件,它控制一个显示为 tooltip 和标签旁边的 picturebox 以显示状态的表单表单是可见还是隐藏。

我有两个图像是本书通过 Visual Studio PludingResources Designer 添加为资源的。 (我尝试将图像的持久性设置为在编译时链接和嵌入以解决问题。)

橡胶遇到道路的代码如下:

pictureBox1.Image = SubAsst.PluginResources.SubAsst_Enabled1;

当代码执行到这一行以显示图像时,我得到 System.Resources.MissingManifestResourceException 异常。异常内容如下:

“找不到任何适合指定区域性或中性区域性的资源。请确保“SubAsst.PluginResources.resources”在编译时已正确嵌入或链接到程序集“SubtitlingAssistant”中,或者所需的所有附属程序集均已可加载且完全签名。”

我查看了 msdn 和其他所有我能找到的地方,但我还没有找到解决方案。除非我更改代码以使用内置系统图标,否则可以:

pictureBox1.Image = System.Drawing.SystemIcons.Information.ToBitmap();

到目前为止,这是我的解决方法。但是我想为插件使用我的自定义图像。

我怀疑 API 不允许使用图像资源,但这没有记录在案。我猜这是因为可以导入图标并显示在插件的默认按钮上。

如果您对此提出任何建议,我将不胜感激。

【问题讨论】:

【参考方案1】:

好像有些资源文件丢失了,检查一下

MSDN 链接

You may receive a "System.Resources.MissingManifestResourceException" error message when you access the .resources file of the form at run time A System.Resources.MissingManifestResourceException exception occurs when you try to access a localized resource

C#: What does MissingManifestResourceException mean and how to fix it?

【讨论】:

哇,太好了,谢谢,尤其是对这个看似不同的问题的具体回答:***.com/questions/1327692/…【参考方案2】:

解决办法如下:

缺少的是属性框中的 CustomToolNamespace:

构建操作:嵌入式资源 复制到输出目录:不要复制 自定义工具:ResXFileCodeGenerator 自定义工具命名空间:[myapplicationnamespace]

命名空间与我的应用程序的命名空间相匹配。一旦我设置了这个并重建了应用程序,错误就消失了,并且显示了图像。

感谢 Meysam Tolouee 回答中的链接,该链接指向 this "off-topic" answer。这绝对不是题外话,我希望我能早点找到这个。

这个 StackOwerflow 是多么棒的工具啊!

【讨论】:

以上是关于Visual C# 更改控件上的图像会产生异常的主要内容,如果未能解决你的问题,请参考以下文章

visual studio 2013 中更改C#项目的 Framework 版本

c# winform程序.在控制面板中调整了DPI设置显示异常

visual c# 表单更新导致闪烁

从控件外部更改用户控件中的图像按钮

asp.net C# 如何以编程方式更改 Page_Load 上的正文背景图像

Visual Studio 2008 自动恢复目录位置更改