【问题标题】:How to open form designer in Visual Studio?如何在 Visual Studio 中打开表单设计器?
【发布时间】:2018-11-26 19:26:30
【问题描述】:

我正在尝试在 Visual Studio 中用 C# 创建一个 Windows 窗体应用程序。

通常可以在解决方案资源管理器中双击Form1.cs 文件以访问简单的拖放设计器。

不幸的是,它只打开了文件的代码。

【问题讨论】:

  • 可能是在创建项目时出现了一些错误,或者您选择的项目类型不正确。尝试单击“添加新项目”并选择一个新的 Windows 窗体元素。可能您需要更改 Program.cs 下的启动类才能启动程序。
  • 尝试右键单击设计器文件,看看是否可以在“打开方式”选项列表中找到设计器。
  • @ThomasWeller 如果是这样,那么重新创建原始项目可能会更容易,因为到目前为止所做的很少。我会这样做,如果问题仍然存在,我会更新。

标签: c# visual-studio


【解决方案1】:

您在文件夹视图中。

更改为解决方案(项目)视图。

解决方案资源管理器顶部的此图标

【讨论】:

  • 如何在两者之间切换?
  • 那里有解决方案文件吗,点一下。如果您没有 .sln,请按 .csproj
  • 点击图标时,提示未找到解决方案。资源管理器中没有 .sln 文件,但有一个 .csproj 文件。点击它不会产生任何不同的结果。
  • 关闭VS并从Windows资源管理器中点击项目文件
  • 或来自VS:文件->打开->项目/解决方案
【解决方案2】:

在表单类之前放置另一个类(在本例中是我的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
    {
    }
}

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

【讨论】:

  • 好收获。真的让我很生气,这是一件事......
【解决方案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。这些是重要的部分。

【讨论】:

    【解决方案4】:

    在我的例子中,右键单击 Form1.cs(带有正确的表单图标)并选择 "View Designer" 仍然显示代码。

    我找到this thread 并意识到我在创建新项目时不小心选择了 .Net Core 而不是 .NET Framework

    我应该可以在 Solution Explorer 面板的 .csproj 文件 (.NET Framework) 中看到这个长 xml,其中 TargetFrameworkVersion 显示 v&lt;Number&gt;

    ... 
    <OutputType>WinExe</OutputType>
    <RootNamespace>HelloWorld</RootNamespace>
    <AssemblyName>HelloWorld</AssemblyName>
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
    ...
    

    ,而不是下面的短 xml (*.Net Core),TargetFramework 显示 netcoreapp&lt;Number&gt;:

    <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
    
      <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
        <UseWindowsForms>true</UseWindowsForms>
      </PropertyGroup>
    
    </Project>
    

    查看项目类型,可以参考this answer

    Microsoft devlogs 表示默认情况下尚未发布带有 .Net Core 的 Designer

    如果你想使用 .NET Core 项目,别忘了安装 .NET Core Windows 窗体设计器,因为它尚未发布 默认情况下在 Visual Studio 中。请参阅前面的“启用 设计师”部分。

    【讨论】:

      【解决方案5】:

      不知何故 .resx 文件损坏了,我通过从我的其他表单复制相同的文件来修复它。只需删除损坏的,粘贴它,然后更改名称

      【讨论】:

        【解决方案6】:

        单击下图中突出显示的图标。解决方案和文件夹图标将带您返回解决方案视图。

        【讨论】:

        • @ColinG ,从我从您的图像中可以看出,解决方案文件不存在。解决方案和文件夹无法找到解决方案。现在关闭 Visual Studio 并通过单击 Project 打开它,一旦 Visual Studio 打开,单击保存。它将再次创建解决方案文件
        • 这并没有解决问题,但我会在可能的情况下再次尝试该解决方案。
        • 我的意思是关闭visual studio并双击项目文件,在你的情况下它是UserInterface.csproj文件。
        • 从资源管理器中打开项目。检查添加的图像
        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          我刚刚在 Visual Studio 2017 中遇到了类似的问题。在“Form1.cs [Design]”上显示了一个错误,我将其关闭。然后我注意到 Form1.cs 没有“视图设计器”选项(图标也更改为普通类的图标)。幸运的是,我发现了错误所在:我将公共部分类 Form1 以外的类作为第一类放在 Form1.cs 文件中。修复了导致图标更改并重新启用“视图设计器”选项的问题。

          很遗憾这些错误没有显示在错误列表中。我的错误很容易被发现,但我明白这可能是个问题,尤其是在大型项目中。

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

          【讨论】:

            【解决方案9】:

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

            例如,这里有一个确实有所需的子元素:

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

            【讨论】:

              【解决方案10】:

              在我的情况下,问题是 cs 文件名中的一个点,例如:“Form1.Core.cs”

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-12-30
                • 2013-06-12
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-02-23
                相关资源
                最近更新 更多