【问题标题】:C++ Windows Forms application icon exceptionC++ Windows 窗体应用程序图标异常
【发布时间】:2019-10-16 16:26:04
【问题描述】:

我想为我的 Windows 窗体应用程序设置一个图标。我一步一步的行动:

  1. 我创建了一个 'icon.ico' (256x256) 并将其放入我的项目文件夹中

  2. 在我的“Form1.h [Design]”中,我使用属性选择了这个文件

  3. 此代码出现在'Form1.h'中

void InitializeComponent(void)
{ ...
this->Icon = (cli::safe_cast<System::Drawing::Icon^>(resources->GetObject(L"$this.Icon")));
... }

  1. 对象“$this.Icon”出现在“Form1.resx”中

  2. 我重建了整个项目 -> 没有错误

  3. 在执行过程中,'this->Icon = ...' 行会导致异常:System.Resources.MissingManifestResourceException:'找不到适合指定区域性或中性区域性的任何资源。确保“WinForm.Form1.resources”在编译时被正确嵌入或链接到程序集“MyProject”中,或者所有需要的附属程序集都是可加载和完全签名的。'

Here 我找到了许多建议,例如删除/添加图标或为“Form1.resx”设置一些自定义属性,但它们都不适合我

【问题讨论】:

    标签: visual-studio exception visual-c++ icons windows-forms-designer


    【解决方案1】:

    就像上面一样,将行改为:

    this->Icon = gcnew System::Drawing::Icon(L"ICON_NAME.ico");
    

    您在打开表单创建器时可能会遇到错误/异常,但您不应丢失任何数据。 去过那里,做到了:)

    【讨论】:

    • 欢迎来到 Stack Overflow。请不要重复答案。如果您有问题的新方面需要解决,请留下答案并在说明中注明。
    【解决方案2】:

    将要连接到表单的图标放在项目目录中。 然后将上面的行替换为以下内容:

    this->Icon = gcnew System::Drawing::Icon(L"app.ico");
    

    这应该可以消除微软尚未修复的错误。

    【讨论】:

      【解决方案3】:

      如果您使用的是 visual studio 2019 ,您需要将 Form1 中的命名空间名称更改为 您的项目名称,我做到了,它的工作原理

      并确保在 main 中更改它:

      [STAThread]
      int main() {
          Application::EnableVisualStyles();
          Application::SetCompatibleTextRenderingDefault(false);
          Application::Run(gcnew your_namespace_name::Form1());
          return 0;
      }
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-27
        • 2011-09-11
        • 1970-01-01
        • 1970-01-01
        • 2013-12-10
        • 1970-01-01
        • 2017-07-24
        • 2017-10-12
        相关资源
        最近更新 更多