我为客户端创建了三个单独的应用程序,客户端最终要求将它们收集到一个屏幕中,从中可以启动他们想要的任何应用程序。为此,我基本上创建了一个带有三个按钮的简单表单的新项目,然后调用代码来调用任何子应用程序,并将每个项目的代码复制到主项目中。
应用程序可以工作,但出于某种原因,设计文件出现了一些奇怪的现象,它们将不再加载到设计器视图中 - 也就是说,如果我尝试在设计视图中打开它们,我只会看到一个空表单。
如果我运行该程序,一切都与以前完全一样。表单显示原样并且没有错误 - 但客户端要求在特定位置使用新按钮,这使我不得不手动编辑.Designer.cs文件并移动十几个标签和按钮以及文本框以适应新增加......
我不确定到底出了什么问题。没有错误,正如我所说,程序编译和运行没有任何障碍。出于某种原因,设计器文件不会在表单文件下折叠,但似乎在解决方案中不在其中:
我不知道这是一条线索还是一条无关的故障。
我尝试从头开始创建一个新表单,并将来自designer.cs文件的代码复制到新表单中。试着看看它是否会加载数据并让我编辑它但它没有用。
有没有办法强迫设计师从Designer文件中重新加载它的所有元素?
答案 0 :(得分:3)
您不应该直接编辑设计器文件。很容易搞砸了。您应该使用图形编辑器。不知道你做了什么,但你搞砸了什么。我会将其还原并直接在表单编辑器中进行更改。
关于设计器文件不在表单文件下的问题, 在项目文件中,您需要将该设计器文件标记为依赖于另一个。
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon> <---- HERE
</Compile>
这可能不见了。
答案 1 :(得分:0)
太好了! 这确实解决了问题
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon> <---- HERE
</Compile>
有时会在跨项目重复使用/复制表单并手动更改表单Code和Designer的名称空间时发生