无法在设计器 Visual Studio 2015 中打开表单(使用 C#)
Posted
技术标签:
【中文标题】无法在设计器 Visual Studio 2015 中打开表单(使用 C#)【英文标题】:Form can't be opened in designer Visual Studio 2015 (Using C#) 【发布时间】:2017-06-22 14:58:59 【问题描述】:根据How do I open a Visual Studio project in design view?,Shift + F7 或 F7 应该显示设计视图,但我只得到代码视图。
如https://msdn.microsoft.com/en-us/library/w5yd62ts(v=vs.100).aspx 所述,双击 Form.cs 也无济于事。
右键单击 Form1.cs 不会显示允许我打开设计视图的选项
如何打开设计视图? Options i get on right clicking Form1.cs
【问题讨论】:
这取决于您的项目中存在的问题。这永远行不通吗?甚至不在一个新的 Windows 窗体项目中? 在您的屏幕截图中,您可以看到,VS 无法将 Form1.cs 识别为表单。该文件中的第一个类是否派生自Form
?
@RomanoZumbé 是的,它确实继承了:public partial class Form1 : Form
我的第一个问题怎么样?
抱歉,我才发现我没有回复。在一个新项目中,设计视图确实打开了。那么在当前项目中会不会是错误的代码导致了这种情况?
【参考方案1】:
检查您的Form1.Designer.cs
和Form1.cs
文件以确保您没有在partial class Form1
之前的文件顶部添加另一个类,因为只有当Form 类是定义的第一个类时,设计器才会加载在文件中。
您提到此解决方案是对其中一个答案的评论,但我首先尝试在 .csproj
上执行编辑,然后才意识到我的更改正在被还原,我需要删除我懒惰添加到的 myCustomPropertyView 类文件顶部。
Visual Studio 仍然表现得有些奇怪(告诉我我在被完全注释掉的行上有错误),但是一旦我关闭并重新打开 Visual Studio,我就恢复了并运行。
【讨论】:
是的。在“partial class Form1”之上添加一个小助手类很诱人——只需将它放在底部... 正如您违反规则后第一次尝试打开Form1.cs时表单编辑器中的错误消息所说的那样。在此之后,您将永远无法在表单编辑器中打开它并看到错误消息。 上帝,谢谢你!我不明白为什么设计师消失了。并且感谢您的评论,现在我知道我不能在 Form1 之前放置另一个课程。谢谢!【参考方案2】:试试这个:
1) 右键单击解决方案资源管理器。
2) 转到没有设计器视图的文件。
3) 从项目中排除它。
4) 从项目中包含它。
它对我有用
【讨论】:
这对我也有用。谢谢,已经尝试了一个小时才能在设计器中显示爆破的表单。 嗨,在我排除表单后,没有包含选项。你的意思是我应该添加现有的项目? 嗨,不是添加现有项目,而是从项目中包含它是其他选项 是的,从项目中排除后,您需要添加 => 现有项目;只有 .cs 文件; .resx 和 Designer.cs 文件也不需要标记 为我工作。很不靠谱,MS?【参考方案3】:我认为这将是您的项目文件 (.csproj) 的问题。如果您在文本编辑器中打开它,它只是一个可以(但在大多数情况下不应该)编辑的 XML 文件。有多个<ItemGroup>
节点。一个有一个子节点,(可能)看起来像这样:
<Compile Include="Form1.cs" />
替换为:
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
编辑:
应该还有这两个节点:
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
【讨论】:
我按照这些步骤操作,但它仍然没有显示设计视图。当我在检查设计视图后返回 csproj 文件时,代码已从您建议的编辑中恢复为仅The class Form1 can be designed, but is not the first class in the file...
我第一次没有读到这篇文章,结果陷入了疯狂的追逐。感谢大家的帮助!
正如我在第二条评论中所问的那样 ;-)
这不起作用,正如 Sam Wrayn 所说,它会返回到以前的形式。正确的答案是确保 Forms1 是源文件中的第一个类。
但是这个答案是在您尝试打开问题表单之前将您的项目恢复到状态的方法,如果您之前错过它,您可以看到错误消息。【参考方案4】:
最近发布了一个适用于 .Net Core 3.0 的 Windows 窗体
该表单的设计器不包含在 Visual Studio 捆绑包中。因此,如果要打开 .Net Core 版本的 windows 窗体的设计器,则需要先安装 VSIX 扩展才能实现。您可以在此处下载扩展程序: https://aka.ms/winforms-designer
我不知道这个扩展是否特别适用于 vs15,所以如果您无法安装它,请尝试使用不是 .Net Core 的 winforms 版本。
我的信息来源: https://devblogs.microsoft.com/dotnet/introducing-net-core-windows-forms-designer-preview-1/
【讨论】:
【参考方案5】:尝试重新启动 Visual Studio,重新构建解决方案并运行它
【讨论】:
【参考方案6】:我遇到了同样的问题,并通过创建一个新项目解决了这个问题,但这次是一个 .NetFrameWork 应用程序而不是 .NetCore。然后当我打开新项目时,我立即(如预期)获得了设计器视图,其中包含新的 Form1...;-)
所以我猜问题是在创建应用程序时选择了错误的模板...
我希望这会有所帮助... 约翰
【讨论】:
【参考方案7】:-
首先,在同一目录下新建一个表单。
从项目中排除 2 个表单(NEWFORM 和 FORMERR)
然后在文件资源管理器中打开文件夹
交换名称 FORMERR -> NEWFORM,反之亦然
最后,包括 NEWFORM(名称为 NEWFORM 的 FORMERR)
=> 对不起,我英语不好。
【讨论】:
您好,请关注How do I write a good answer?【参考方案8】:工具 -> 导入和导出设置 -> 重置所有设置 -> 再次尝试 Shift + F7
【讨论】:
问题不是缺少键盘快捷键,而是VS无法将Form1.cs文件识别为Form
。看看截图
@RomanoZumbé 啊抱歉我只是略读,类是继承形式吗?
不知道,这也是我问的:-D
@RomanoZumbé 如果您打开类文件,在顶部是否显示 Form1 : Form
我不知道,我不是 OP。你得问他以上是关于无法在设计器 Visual Studio 2015 中打开表单(使用 C#)的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2015 C# XAML 设计器不加载
无法使用带有 Visual Studio 2010 的 Windows 窗体恢复设计器视图窗口
Visual Studio 证书错误“清单设计器无法导入证书”:是啥原因?