25

我正在使用 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 的新手。到目前为止,我非常喜欢它,但我现在已经死在水里了,除非我能解决这个问题,否则我将失去两周的工作。任何帮助将不胜感激。

谢谢,-汤姆

额外细节:

Windows 7 专业版 SP1 32 位 x86

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

安装版本:C# Express

微软 Visual C# 2010 01014-169-2560017-70726 微软 Visual C# 2010

Microsoft Visual C# 2010 Express - ENU 服务包 1 (KB983509) KB983509 此服务包适用于 Microsoft Visual C# 2010 Express - ENU。如果您稍后安装更新的服务包,此服务包将自动卸载。

4

15 回答 15

45

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

最后将其归结为 .csproj 文件中的问题。有一个项目组指定编译的内容。在项目组标签中,对于我的表单,它具有...

<Compile Include="AreaChart.cs" />

它需要...

<Compile Include="AreaChart.cs">
  <SubType>Form</SubType>
</Compile>

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

于 2013-05-28T02:46:48.970 回答
28

Just one more way to screw up the form designer - I had something like this:

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

Turns out you can't put the SomeStruct definition there even though everything works fine and there were no errors. Once I moved it, I was able to see the designer view again.

于 2015-10-07T14:34:10.717 回答
17

再次,这是一个旧线程,但网络兴趣表明许多人仍然有这个问题并且尚未解决。

我正在使用 VS2012,当我将一个库控件复制到一个单独的库中以供进一步开发时,它会产生 3 个表单。窗体中的所有控件在运行时显示完美,但设计器显示一个空白窗体。

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

<Compile Include="MyForm.Designer.cs" />

需要的是:

<Compile Include="MyForm.Designer.cs">
    <DependentUpon>MyForm.cs</DependentUpon>
</Compile>

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

于 2013-12-06T12:50:49.607 回答
13

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

public partial class frmWidget : Form
{
}

public class SomeClass
{
}

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

于 2016-10-25T15:07:59.787 回答
9

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

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

但这对我有用

  1. 右键单击您的MainForm.cs文件(或“Form.cs”,具体取决于您的命名方式)
  2. '从项目中排除'。这会暂时删除MainForm.csMainForm.Designer.csMainForm.resx
  3. 使用“添加»现有项目”并选择MainForm.cs。这将重新包含所有三个文件。
    当然,您应该将它们添加回与以前相同的文件夹中
  4. 双击MainForm.cs并神奇地打开设计视图
于 2017-12-04T21:55:10.013 回答
3

我有同样的问题,但我的问题是在 VS2012 上通过将一些表单拖放到不同的文件夹中引起的。

大卫上面的解决方案有助于修复它,但并没有完全解决。

如果您在子文件夹中有表单,则该Compile Include行应如下所示:

<Compile Include="SubFolderName\MyForm.Designer.cs">
    <DependentUpon>MyForm.cs</DependentUpon>
</Compile>

请注意,第一行需要子文件夹名称,而第二行不需要。

我还必须在文件下方更改 EmbeddedResource 行以关联 resx 文件:

   <EmbeddedResource Include="SubFolderName\MyForm.resx">
        <DependentUpon>MyForm.cs</DependentUpon>
    </EmbeddedResource>

再次注意,第一行提到子文件夹,而第二行没有。

于 2014-02-21T15:23:06.453 回答
2

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

于 2012-06-08T08:41:27.010 回答
2

我对VB也有同样的问题。感谢您的提示。我在 UserControl 的 .vbproj 中发现了同样的问题。

我在 .vbproj 文件中有这个:

<Compile Include="AddCommunicationTask.vb" />

并将其更改为:

<Compile Include="AddCommunicationTask.vb">
   <SubType>UserControl</SubType>
</Compile>

当我重新加载它时,我仍然遇到问题并意识到我在表单类上方编写了另一个类,这导致了错误。表单类必须是第一个。我所要做的就是把我的班级往下移,把表格班放在首位。

我希望这对其他人有所帮助 - 祝你好运!

ps - 我正在使用 vs Community 2015

于 2016-05-07T16:08:44.983 回答
2

自从我将项目创建为 C# Windows Form App (.NET Core) 后,我遇到了同样的问题,我决定将其创建为 C# Windows Form App (.NET Framework),现在我可以查看和使用 Designer。请注意使用“核心”与“框架”之间的区别

我希望这能够帮到你。

于 2019-10-09T10:11:41.277 回答
0

我现在意识到这是一个非常古老的线程,但是我遇到了同样的问题,结果发现 csproj 文件中还有另一个节点可能会误入歧途;.resx 表单有一个 EmbeddedResource 节点,而我的缺少子节点 Designer。这让我可以在 IDE 中再次看到表单代码。

于 2015-06-10T03:59:36.450 回答
0

虽然这是一个很老的话题,但我想分享我的案例和解决方案。

我有同样的问题,但我使用 Telerik WinForms 组件为我的Form. 直到我意识到 RadControls for WinForms 的设计时功能是在Telerik.WinControls.UI.Design.dll程序集中实现的,我才能看到设计器。然后我添加参考,现在设计师出现了。

于 2017-04-01T11:32:39.623 回答
0

我在 VS 2010 中遇到了同样的问题。我无法查看设计器表单(Connect.CS)。

我已经有了

<Compile Include="Connect.cs">
  <SubType>Code</SubType>
</Compile>
<Compile Include="Connect.Designer.cs">
  <DependentUpon>Connect.cs</DependentUpon>
</Compile>

ItemGroup 标签中的标签,但我仍然无法查看设计器。

我正在使用名称空间指令“使用 RFCOMAPILib”,其中已经有一个 Form 元素,它与 System.Windows.Forms.Form 发生冲突。

将“公共部分类连接:表单”替换为“公共部分类连接:System.Windows.Forms.Form”后,我现在可以查看设计器。

于 2019-11-03T08:24:54.937 回答
0

我遇到了同样的问题,我通过双击解决方案资源管理器中的 Form1.cs 文件(不是 Form1.Designer.cs 文件)返回了(设计)窗口。

于 2017-08-06T01:22:09.280 回答
0

我不小心删除了我的 Form1[Design] 文件。双击 Form1.h 文件什么也没做。程序运行,按钮文本框和标签都在那里,只是没有 Form1[Design] 可见以进行编辑。我在下面修复了它: Header Files 选择 Form1.h 并转到 Form1.H 文件属性。在下拉菜单中的文件类型下将其更改为“C++ 表单”我关闭并重新启动程序。您现在应该能够双击 Form1.h 并查看您的 Form1[设计]。

于 2018-02-17T00:39:16.813 回答
0

我有一个类似的问题,但不完全相同。

我将表单从一个项目复制到另一个项目(使用 Windows 资源管理器),然后通过右键单击 VS 中的项目并选择 > 添加 > 现有项目将其添加到新项目中。

我的错误是为表单添加了所有三个文件(.cs、.designer.cs 和 .resx)。我应该只添加 .cs 文件。

于 2016-06-25T14:39:05.610 回答