winforms 窗体设计器对Visual Studio中的窗体变得不可用

0pizxfdo  于 2023-05-18  发布在  其他
关注(0)|答案(3)|浏览(241)

在Visual Studio 2015中对表单进行了一些工作之后,表单设计器突然变得不可用。
症状:

  • 解决方案资源管理器中表单代码类的上下文菜单中缺少项目视图设计器
  • 无法使用常规键盘快捷键切换到设计器
    .Designer*.resx文件仍在原位,并正确显示为表单代码类的子树项
    .Designer*.resx
    文件从内部看起来很健康,它们有每一个强制部分
  • Visual Studio报告0个错误
  • 只有一个窗体受影响,其他窗体可以在设计器中正常打开

为什么Visual Studio没有将表单文件评估为有效,没有显示设计器视图?

dy1byipe

dy1byipe1#

修复:表单源代码中,手动将所有类*移到定义表单的类下面。窗体类必须是从上到下阅读源文件时遇到的第一个类定义。
详情:

我不小心把自己锁在外面,锁着的门后面写着错误信息。

**问题:**在工作过程中,我临时在表单代码文件的开头添加了一个微不足道的helper类。如果我当时打开了设计器,我可能会看到以下错误:

可以设计Form 1类,但不是文件中的第一个类。Visual Studio要求设计人员使用文件中的第一个类。移动类代码,使其成为文件中的第一个类,然后再次尝试加载设计器。
问题是,***错误只显示在设计器中。如果你现在只打开了代码窗口,你不会发现错误-更糟糕的是,你不再被允许进入设计器视图来发现它。
因此,当Visual Studio没有给出任何线索时,一个案例可能会发生-唯一的帮助是合格的猜测和审判。

qgzx9mmu

qgzx9mmu2#

万一其他人需要一个不同的修复,我有同样的问题,但它是与telerik报告。
不知道为什么或如何,但我的问题是一个损坏的项目文件。报告缺少子类型元素。此元素告诉visual studio使用设计器模板而不是代码视图打开文件。
子类型取决于它是什么类型的控件。对于windows窗体,子类型应为窗体
卸载项目->右键单击->编辑“.csproj”
所以我修改了这个(在项目文件中):

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

对此:

<Compile Include="Report1.cs">
  <SubType>Component</SubType> <!-- if winform, this would be Form instead -->
</Compile>
<Compile Include="Report1.Designer.cs">
  <DependentUpon>Report1.cs</DependentUpon>
</Compile>

重新加载项目。

lmvvr0a8

lmvvr0a83#

只需从目录中添加表单的现有设计器即可解决此问题。在visual studio中添加现有文件后,将显示**“视图设计器”**的上下文菜单。

相关问题