无法使用Visual Studio 2010的Windows窗体返回设计器视图窗口

use*_*434 21 c# visual-studio-2010 winforms

我正在使用Visual Studio Express 2010 ENU SP1编写C#Windows窗体应用程序.进一步的VS细节是这篇文章的底部.我最近使用设计器视图对布局进行了一些更改,然后决定我不想要更改,所以我关闭了设计器窗口.当我关闭项目并且更改以任何方式保存时,代码窗口仍然处于运行状态.我不关心这些变化,因为除了我找不到任何重新打开视觉设计器窗口的方法之外,布局很容易恢复.为了让窗口恢复,我尝试了以下方法:

换班F7

右键单击设计器代码窗口

双击解决方案资源管理器下的设计器文件

选择解决方案资源管理器下的设计器文件,然后使用上下文菜单调出文件

我有VS 2010团队的评估副本,它在使用我的项目时显示完全相同的行为

我已经尝试了项目的备份副本,但它在Express和Team版本中都显示了相同的问题

我已经遍布MSDN,VS论坛和整个互联网,没有找到任何解决方案

当我第一次启动项目时,我确实从解决方案资源管理器中重命名了Form1.cs文件,因为我想为应用程序创建一个与Form1不同的名称.这样做时,它询问以下内容:

"您正在重命名文件.您是否希望在此项目中对代码元素'projectname'的所有引用执行重命名?

我回答是的.所以现在我没有Form1.cs文件,而是一个带有"projectname.cs"的文件和名为"projectname.Design.cs"的设计器文件.这是我做的唯一一个我能想到的可能是我确实尝试将其重命名为Form1.cs,但这也没有解决问题.

我不得不说我是使用Visual Studio的新手.到目前为止,我非常喜欢它,但我现在已经死了,除非我能解决这个问题,否则我将失去两周的工作.任何帮助将不胜感激.

谢谢,-Tom

额外细节:

Windows 7 Professional SP1 32位x86

Microsoft Visual Studio 2010版本10.0.40219.1 SP1Rel Microsoft .NET Framework版本4.0.30319 SP1Rel

已安装版本:C#Express

Microsoft Visual C#2010 01014-169-2560017-70726 Microsoft Visual C#2010

Microsoft Visual C#2010 Express - ENU Service Pack 1(KB983509)KB983509此Service Pack适用于Microsoft Visual C#2010 Express - ENU.如果以后安装更新的Service Pack,则将自动卸载此Service Pack.

小智 42

我现在意识到这是一个很老的线程,但我在VS2010的一个项目中发生了类似的事情.无法在表单设计器中编辑表单.

最后跟踪到.csproj文件中的问题.有一个项目组,指定编译的内容.在项目组标签内,对于我的表单,它有......

<Compile Include="AreaChart.cs" />
Run Code Online (Sandbox Code Playgroud)

它需要......

<Compile Include="AreaChart.cs">
  <SubType>Form</SubType>
</Compile>
Run Code Online (Sandbox Code Playgroud)

缺少SubType XML标记.快速更改项目文件,我可以再次编辑表单.

  • 我的项目文件中有`<SubType> Form </ SubType>`,但它还没有出现. (2认同)

Ama*_*ati 25

还有一种搞砸表单设计器的方法 - 我有这样的事情:

namespace MyProgram
{
    public struct SomeStruct {
        int a,b;
    }
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

事实证明,即使一切正常并且没有错误,也无法将SomeStruct定义放在那里.一旦我移动它,我就能再次看到设计师的视图.

  • 我有同样的问题,除了它是一个班级 (3认同)

Dav*_*vid 17

同样,这是一个旧的线程,但网络兴趣表明,许多人仍然有这个问题,它还没有解决.

我正在使用VS2012并且当我复制一个库控件时产生了问题,该库控件将3个表单生成到一个单独的库中以供进一步开发.表单中的所有控件在运行时都会完美显示,但设计人员显示了一个空白表单.

问题不像上面那样(完好无损)但是,由于这个提示,我添加了一个新表单并比较了.csproj文件中的条目.对于每个复制的表单,显示类似于以下内容的条目:

<Compile Include="MyForm.Designer.cs" />
Run Code Online (Sandbox Code Playgroud)

需要的是:

<Compile Include="MyForm.Designer.cs">
    <DependentUpon>MyForm.cs</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)

为每个表单手动添加这些解决了问题.


小智 12

确保在设计器分部类之前没有声明任何类..cs文件需要将部分设计器类作为文件中的第一个类.

public partial class frmWidget : Form
{
}

public class SomeClass
{
}
Run Code Online (Sandbox Code Playgroud)

现在SomeClass不能在部分frmWidget类之上.一旦您重新安排它,它将自动修复设计器问题,无需重新启动VS或重新创建表单.我希望这有帮助.


nix*_*xda 6

尝试了这个问题中提到的所有建议,2017年Visual Studio社区没有任何效果

  • 没有Shift-F7截击
  • 没有上下文菜单项可见
  • 没有双击MainForm.cs
  • MainForm.cs中没有错误的类顺序
  • mysolutionname.csproj文件中没有错误的条目

但这对我有用

  1. 右键单击您的MainForm.cs文件(或'Form.cs',具体取决于您的命名方式)
  2. "从项目中排除".这会暂时删除MainForm.cs,MainForm.Designer.csMainForm.resx
  3. 使用"添加»现有项目"并选择MainForm.cs.这将重新包含所有三个文件.
    当然,您应该将它们添加回原来的文件夹
  4. 双击MainForm.cs和设计视图神奇地打开


use*_*434 2

谢谢你的想法。我刚刚完全重新安装了 VS 2010 团队版的 Express 和评估版,现在它可以神奇地工作了。我不知道是什么导致了这个问题,也不知道是什么解决了它,但我现在又回到了正轨。在这个论坛上提问之前我可能应该这样做。