这个问题让我很纠结!我会尽可能简洁地解释。
总体来说,虽然项目正常运行且代码看起来不错,但每当我编辑和构建某些表单时,Visual Studio以一种非常不理想的方式重新编写
我相当肯定这些
更详细地说,我们的项目使用自定义控件,其中一些继承自
然而,如果我只是通过在表单上拖动另一个控件(将另一个按钮拖到表单上)来修改此表单,并构建项目,则Visual Studio会广泛编辑
这显然不是我想要的。为什么 Visual Studio 现在希望表单使用本地资源,而不像之前修改表单时那样使用嵌入在项目的 Resources.resx 文件中的资源呢?如果我进入设计器,查看 customButton 的属性,并尝试将 Image 属性设置为项目资源文件中的图像,则可以允许它,但下一次点击后,它会立即恢复到嵌入在 MyForm.resx 中的本地引用。
您有任何想法为什么会发生这种情况吗?
总体来说,虽然项目正常运行且代码看起来不错,但每当我编辑和构建某些表单时,Visual Studio以一种非常不理想的方式重新编写
*.Designer.cs
文件。我相当肯定这些
*.Designer.cs
文件过去没有被编辑过(特别是自动生成的部分)。更详细地说,我们的项目使用自定义控件,其中一些继承自
PictureBox
。在这些控件存在的表单上,如果查看*.Designer.cs
文件,要么看到Image
属性未设置,要么Image
属性指向存储在项目resx文件中的图像,这都很好。this.customButton.Image = global::MyProject.Properties.Resources.buttonImage;
然而,如果我只是通过在表单上拖动另一个控件(将另一个按钮拖到表单上)来修改此表单,并构建项目,则Visual Studio会广泛编辑
MyForm.Designer.cs
和MyForm.resx
文件,即使对于未被触及的表单上现有控件也是如此。它似乎将所有控件所需的图像嵌入MyForm.resx
文件中,然后在MyForm.Designer.cs
中引用它们,如下所示:System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MyForm));
this.customButton.Image = ((System.Drawing.Image)(resources.GetObject("customButton.Image")));
这显然不是我想要的。为什么 Visual Studio 现在希望表单使用本地资源,而不像之前修改表单时那样使用嵌入在项目的 Resources.resx 文件中的资源呢?如果我进入设计器,查看 customButton 的属性,并尝试将 Image 属性设置为项目资源文件中的图像,则可以允许它,但下一次点击后,它会立即恢复到嵌入在 MyForm.resx 中的本地引用。
您有任何想法为什么会发生这种情况吗?