如何在Visual Studio中打开表单设计器?

11
我正在尝试在Visual Studio中使用C#创建一个Windows Forms应用程序。
通常情况下,可以在解决方案资源管理器中双击Form1.cs文件以访问简单的拖放设计器。
不幸的是,它只会打开该文件的代码。

solution explorer


可能在创建项目时出现了一些错误,或者您选择了不正确的项目类型。尝试通过单击“添加新项”并选择新的Windows表单元素来解决问题。可能需要更改Program.cs下的启动类以使程序启动。 - Mauro Bilotti
2
尝试右键单击设计文件,看看是否可以在“打开方式”选项列表中找到设计师。 - Sweeper
@ThomasWeller 如果是这样的话,那么重新创建原始项目可能会更容易,因为目前为止还没有做太多工作。我会这样做,并在问题仍然存在时进行更新。 - SwingingChad
12个回答

7

您现在处于文件夹视图。

切换到解决方案(项目)视图。

在解决方案资源管理器的顶部,可以找到此图标enter image description here


我该如何在两者之间切换? - SwingingChad
你那里有解决方案文件吗?只需点击它。如果没有 .sln 文件,则点击 .csproj 文件。 - Alexan
点击图标时,显示未找到解决方案。在资源管理器中没有.sln文件,但有一个.csproj文件。单击它并没有产生任何不同的结果。 - SwingingChad
关闭VS并从Windows资源管理器中单击项目文件。 - Alexan
1
或者从VS:文件->打开->项目/解决方案 - Alexan

6

当在表单类之前放置另一个类时(在此情况下为ImageContainer类),会出现相同的问题。

namespace ImageProcessor
{
    internal class ImageContainer
    {
    }
    
    public partial class Form1 : Form
    {
        private ImageContainer m_img = null;
    }
}

仅仅将 internal class ImageContainer 移动到 public partial class Form1 : Form { } 下方,VS2019 拖拽设计器就能够正确加载我的 Form1 类。
namespace ImageProcessor
{
    public partial class Form1 : Form
    {
        private ImageContainer m_img = null;
    }

    internal class ImageContainer
    {
    }
}

解决方案资源管理器中的符号也被改回对话框图标。


不错的发现。真让我生气,这竟然是个问题… - Nathan Chappell
同样适用于VS 2022。谢谢! - Manngo

3
文件之间的关联可能出了问题。您可以手动编辑 .csproj 文件并进行更正。搜索 Form1。对于每个文件,您应该有类似以下条目的条目:
<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>

请注意SubTypeDependentUpon。这些是重要的部分。

这让表单设计视图出现了,但是我无法编译。似乎有关“重复编译项……”的问题。 - john k

2
在我的情况下,右键单击带有正确窗体图标的Form1.cs,然后选择“查看设计器”,仍然显示代码。
我找到了this thread,并意识到在创建新项目时我不小心选择了.Net Core而不是.NET Framework

enter image description here

我应该能够在.NET Framework的“解决方案资源管理器”面板中看到.csproj文件中的这个长xml,其中TargetFrameworkVersion显示为v<Number>
... 
<OutputType>WinExe</OutputType>
<RootNamespace>HelloWorld</RootNamespace>
<AssemblyName>HelloWorld</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
...

与其使用下面的短 xml(*.Net Core),其中 TargetFramework 显示为 netcoreapp<Number>

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>

</Project>

检查项目类型,可以参考这个答案Microsoft devlogs指出,Designer与 .Net Core 目前还没有默认集成:

如果你想使用 .NET Core 项目,请不要忘记安装 .NET Core Windows Forms Designe,因为它还没有默认包含在 Visual Studio 中。请参阅上一个“启用设计者”部分。


1

在下面的图标中点击高亮的图标。这是“解决方案和文件夹”图标,将带您回到解决方案视图。

enter image description here

enter image description here


@ColinG,从您的图片中我可以看出,解决方案文件不存在。Solutions和Folders无法找到解决方案。现在关闭Visual Studio并通过单击项目来打开它,一旦Visual Studio打开,请单击保存。它将再次创建解决方案文件。 - Sats
那并没有解决问题,不过我会在有机会的时候再尝试那个解决方案。 - SwingingChad
我的意思是关闭Visual Studio并双击项目文件,在您的情况下是UserInterface.csproj文件。 - Sats
从资源管理器打开该项目。检查添加的图像。 - Sats

1
一些方式,.resx文件被损坏了,我通过从我的另一个表单复制相同的文件来修复它。只需删除损坏的文件,粘贴它并更改名称即可。

0

另一种可能是您的表单类在 csproj 中的 xml 元素中缺少 SubType 子元素。

例如,这里有一个具有所需子元素的示例:

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

0
在我的情况下,问题出在 cs 文件名中的一个点,例如:"Form1.Core.cs"。

0

在其他地方找到了这个解决方案:

我在Visual Studio 2017中遇到了类似的问题。在“Form1.cs [Design]”上显示了一个错误,我关闭了它。然后我注意到Form1.cs没有“查看设计器”选项(图标也变成了常规类的图标)。幸运的是,我找出了错误所在:我在Form1.cs文件中将一个不是public partial class Form1的类放在了第一个类中。修复后,图标改变并重新启用了“查看设计器”选项。

很遗憾这种错误不会显示在错误列表中。我的错误很容易发现,但我知道这可能是一个问题,特别是在更大的项目中。

链接: https://developercommunity.visualstudio.com/t/open-form-designer-from-solution-explorer/44160#:~:text=I%27ve%20just%20had,on%20bigger%20projects.


0
在VS2019中,只需删除第一个项目并重新创建另一个项目即可解决查看设计页面的问题。现在您可以查看您的设计了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接