由于缺少资源

时间:2017-06-29 19:40:23

标签: winforms exception events resources c++-cli

我的表单有96个复选框,4个DataGridView控件和一些其他控件。一切正常,直到我向第四个DataGridView添加一个事件。当我向该控件添加任何事件时,代码构建器会添加一个编译但导致运行时异常的资源。例外是:

未处理的类型' System.Resources.MissingManifestResourceException'发生在mscorlib.dll

其他信息:找不到适合指定文化或中性文化的资源。

我在有效的代码和导致异常的代码之间运行了一个Diff。当我将事件添加到DataGridView控件时,下面的代码将添加到我的MainForm.h文件中。

System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));

在将事件添加到DataGridView之前,每个复选框控件都有一行,如下所示。

resources->ApplyResources(this->checkBox_D1, L"checkBox_D1");

代码生成器在添加事件后从每个复选框中删除了以下代码。

this->checkBox_D1->AutoSize = true; 
this->checkBox_D1->Location = System::Drawing::Point(30, 19); 
this->checkBox_D1->Size = System::Drawing::Size(40, 17);
this->checkBox_D1->TabIndex = 0;
this->checkBox_D1->Text = L"D1";

我可以在第四个DataGridView和其他不会导致问题的其他人之间找到的唯一区别是,其中三个在Group框内,第四个在Group Box之外。我通过复制和粘贴从第一个创建了所有四个DataGridView控件。我认为这可能导致问题,所以我从头开始创建第四个,但它没有解决问题。所有四个DataGridView控件都调用相同的事件处理程序并指向相同的函数。

我将Form1的名称更改为MainForm,但在某些地方仍然显示为Form1。为什么会这样,这会导致这个问题吗?

任何建议都将不胜感激!

谢谢。

1 个答案:

答案 0 :(得分:0)

我通过重新创建表单解决了这个问题。重新创建GUI并传输我的所有代码比试图弄清楚如何解决它更快。我猜这个项目已经开始了,但我不明白Visual Studio如何很好地组织资源。