Visual Studio设计视图 – 表单为空白

我有一个C#项目有两种forms。 所有编译都很好。 当我运行项目时,所有表单都按预期绘制。

几天前, 所有表单的DesignView开始只显示一个空白表单,就像你在新的Windows.Forms项目中得到的那样。

我在SO上遇到了几个有类似问题的问题,以下是对这些问题的评论:

  1. 我的项目没有第三方库(除了htmlAgilityPack,在其他Windows.Forms C#项目中不会导致此问题)
  2. 我已经检查过InitializeComponent函数在每个表单的项目中只有一次
  3. 当我创建一个新项目并添加一个现有表单(即我的一个有问题的项目表单)时,Design Viewer按预期工作 – 因此我怀疑我的表单的.cs,.Designer.cs和.resx文件是正常的。

我可以在项目设置或其他地方搞砸了吗?

编辑

上面的第三点是误导性的 – 我尝试为第二种forms创建一个新项目,并且问题仍然存在。 显示问题的最少量源代码可在此处找到。

您的项目文件已失效。

表单的有效项目条目如下所示:

  Form   Form1.cs  

虽然您缺少DependentUpon行 – 这就是代码和设计器文件在项目中单独出现而不是连接的原因:

  Form   

如果添加缺失的行,表单将在设计模式下正确显示:

  Form   mainForm.cs  

并整理资源文件:

  mainform.cs  

为了解决这个问题,您只需在编辑器中编辑csproj,或者在Visual Studio中执行此操作:

  1. 备份文件
  2. 右键单击该项目,然后选择“卸载项目”
  3. 右键单击卸载的项目,然后选择“编辑[ProjectName] .csproj”
  4. 进行更改,然后关闭文件。
  5. 右键单击卸载的项目,然后选择“重新加载项目”

我通过删除与该表单关联的所有文件来解决问题

  • 文件 – >右键单击 – >从项目中排除

并手动将文件添加回项目

  • 项目 – >添加 – >现有项目……

另一种可能性 我有一组forms都来自基本forms。 我添加了位置保存/恢复代码 – 一切都空白了。

经过一个小时的乱搞并且无法找到任何错误之后,它突然开始在设计器中抛出一个空引用exception,而不仅仅是空白。 Duh – 保存/恢复代码使用了一个不存在设计时的对象。

为什么它对它保持沉默,然后突然开始嘎嘎叫我不知道。

对于那些四处搜寻并找不到安慰的人,我有另一个解决方案。 我inheritance的项目具有可怕的代码质量,之前的开发人员在他的代码中都混合了大小写,因为“它不区分大小写,所以没关系”

因此,虽然PopulateRevs实际上与Visual Basic中的POpulateREvs相同,但这种懒惰会导致问题。 以机智:

  Partmaster.vb   Form  

我碰巧在.vbproj文件中看到这个,同时查看其他不起作用的解决方案。 我碰巧将Partmaster.Designer.Vb更改为Partmaster.Designer.vb (小写扩展名)并且它工作正常。

因此,作为另一种解决方案,虽然Visual Basic不区分大小写,但它看起来像.vbproj文件。 如果你感到困惑,另外要确保你的文件名和.proj文件共享相同的情况。

(我意识到这是标记为C# ,但我在C#中对此进行了测试,混合大小写也会在那里引发问题。)