Visual Studio 2019 Windows 窗体设计器

问题描述 投票:0回答:9

我在使用 Windows 窗体应用程序时遇到问题。当我创建 Windows 窗体应用程序时,它显示窗体的源代码,但不显示设计器布局

visual-studio windows-forms-designer visual-studio-2019
9个回答

2
投票

我也有同样的问题。以下步骤对我有帮助

  1. 删除 yourformname.cs 文件中 Form 类以外的任何其他类
  2. 卸载项目并右键单击项目并选择编辑项目
  3. 确保您的表单名称表单的子类型设置为表单
    <SubType>Form</SubType>
    并保存文件
  4. 重新加载项目

2
投票

从版本 16.8.0 Preview 2.1 开始,我发现我必须关闭此设置并重新启动并添加我的表单。添加后,我可以重新打开它,重新启动并工作。

enter image description here


1
投票

当然,在 WinForms 中需要检查的一件事是,在表单本身之前,您没有在表单类文件中声明任何其他类。下面的示例将阻止设计器加载表单,甚至为您提供“视图设计器”的菜单选项

// Don't do declare a class here
public class MyNewClass
{
}

public partial class MyForm: Form
{
    public MyForm()
    {
        InitializeComponent();
     }
}

0
投票

这也发生在我身上。

我使用了错误的模板(.net core,当我想使用完整的 .net 框架时,它允许您像在 vs 2017 或以前的版本中那样编辑表单)。


0
投票

我使用的是16.6.5,在你第一次创建项目后,你必须运行该项目才能让IDE拾取form.cs。


0
投票

删除内部类使我的表单返回到 Visual Studio Design 显示。

例如,如果你un注释这个Form2的内部类,它就会被视为普通类。

namespace XXX {
    //public class EventMsgXXX:EventArgs {
    //   public string mmm {get; private set;}

    //   public EventMsgXXX(string str) {
    //      mmm = str;
    //   }
    //}

    public partial class Form2:Form {
        public event EventHandler<EventMsgXXX> OnCallback;

        public Form2() {
            InitializeComponent();
        }

        private void btn_Click(object sender,EventArgs e) {
            EventHandler<EventMsgXXX> handler = OnCallback;
            if (handler != null) {
                EventMsgXXX arg = new EventMsgXXX("HELLO");
                handler(this, arg);     
            }
        }
    }
}

0
投票

我想出的对我有用的解决方案;

  • 在同一解决方案中创建相同类型的新项目。
  • 将所有受影响的表单从有问题的项目复制到新项目。
  • 从有问题的项目中删除受影响的表格。
  • 将表单从新项目复制回有问题的项目。

简而言之:将受影响的表单复制到新项目并返回。

顺便说一句,就我而言,这发生在 VS 2022 中。


-1
投票

我已经尝试了Danielle的建议,但它似乎是对其他文章Olia的循环引用。大量评论还说 Olia 的建议不起作用,最后,您需要执行以下操作。

解决方案

此处下载 Visual Studio 16.6.0 Preview 2.1。这有效。

© www.soinside.com 2019 - 2024. All rights reserved.