我为客户创建了三个独立的应用程序,客户最终要求将它们收集到一个屏幕中,他们可以从中启动他们想要的任何应用程序。为此,我基本上创建了一个带有三个按钮的简单表单的新项目,然后该项目将调用所调用的子应用程序的代码,并将每个项目的代码复制到主项目中。
应用程序可以工作,但由于某种原因,设计文件发生了一些奇怪的事情,它们将不再加载到设计器 View 中 - 也就是说,如果我尝试在设计 View 中打开它们,我只会看到一个空表单。
如果我运行该程序,一切都会像以前一样工作。表单按原样显示,没有错误 - 但客户要求在特定位置添加一个新按钮,这使我必须手动编辑 .Designer.cs 文件并移动十几个标签、按钮和文本框以适应新添加...
我不确定到底出了什么问题。没有错误,正如我所说,程序编译并运行顺利。由于某种原因,设计器文件没有折叠在表单文件下,但在解决方案浏览器中似乎位于表单文件之外:
我不知道这是一条线索还是只是一个不相关的故障。
我尝试从头开始创建一个新表单,并将 Designer.cs 文件中的代码复制到新表单中,以尝试查看它是否会加载数据并让我编辑它,但它不起作用。
是否有任何方法可以强制设计器从设计器文件中重新加载所有元素?
最佳答案
您不应直接编辑设计器文件。很容易把事情搞砸。您应该使用图形编辑器。不知道你做了什么,但你搞砸了一些东西。我将恢复它并直接在表单编辑器中进行更改。
关于设计器文件不在表单文件下的问题, 在您的项目文件中,您需要将该设计器文件标记为依赖于另一个文件。
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon> <---- HERE
</Compile>
这可能丢失了。
关于C# 设计 View 不会在 winform 中加载图形元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081047/