C#设计视图无法在winform

时间:2015-08-18 19:26:55

标签: c# winforms visual-studio visual-studio-2012

我为客户端创建了三个单独的应用程序,客户端最终要求将它们收集到一个屏幕中,从中可以启动他们想要的任何应用程序。为此,我基本上创建了一个带有三个按钮的简单表单的新项目,然后调用代码来调用任何子应用程序,并将每个项目的代码复制到主项目中。

应用程序可以工作,但出于某种原因,设计文件出现了一些奇怪的现象,它们将不再加载到设计器视图中 - 也就是说,如果我尝试在设计视图中打开它们,我只会看到一个空表单。

如果我运行该程序,一切都与以前完全一样。表单显示原样并且没有错误 - 但客户端要求在特定位置使用新按钮,这使我不得不手动编辑.Designer.cs文件并移动十几个标签和按钮以及文本框以适应新增加......

我不确定到底出了什么问题。没有错误,正如我所说,程序编译和运行没有任何障碍。出于某种原因,设计器文件不会在表单文件下折叠,但似乎在解决方案中不在其中:

enter image description here

我不知道这是一条线索还是一条无关的故障。

我尝试从头开始创建一个新表单,并将来自designer.cs文件的代码复制到新表单中。试着看看它是否会加载数据并让我编辑它但它没有用。

有没有办法强迫设计师从Designer文件中重新加载它的所有元素?

2 个答案:

答案 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的名称空间时发生