Winforms 在 .NET Core 6.0 中与 VS 2022 的问题

huangapple go评论64阅读模式
英文:

Winforms in .NET Core 6.0 issue with VS 2022

问题

我正在尝试向在.NET Core 6.0上运行的VS 2022社区版中的Winforms应用程序添加控件。每当我从工具箱添加一个控件,比如一个按钮或一个标签,并尝试保存项目时,会弹出错误消息:

应该有两个或更多的类部分

没有进一步的信息。这里是一个截图或参考:

Winforms 在 .NET Core 6.0 中与 VS 2022 的问题

有什么想法吗?

英文:

I am trying to add control to a Winforms application running on .NET Core 6.0 in VS 2022 Community edition. Whenever I add a control from the toolbox, like a button or a label, and try to save the project, an error message pops up

> Should have two or more class parts

There's no further information. Here's a screenshot or reference:

Winforms 在 .NET Core 6.0 中与 VS 2022 的问题

Any ideas?

答案1

得分: 5

在我的情况下,问题似乎是在窗体类文件中添加第二个类的问题。

解决方法:在另一个文件中定义新类。

重现问题的步骤[Visual Studio 17.5.0 最终版]:

  1. 创建一个新项目:
    模板:Windows Forms App(C#)。下一步。
    设置项目名称(例如 MyApplication)。下一步。
    框架:.NET 6.0(长期支持版)。创建。
  2. (Visual Studio 创建项目并打开 Form1.cs 在设计器中)
  3. 向窗体添加一个按钮控件。保存(Ctrl+S)。确定。
  4. F7 访问窗体代码。
  5. 在相同的命名空间下,在 Form1 类的下面添加第二个类(例如 MyClass):
namespace MyApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
      
    public class MyClass
    {
        public string Name { get; set; }
    }
}
  1. 保存(Ctrl+S)。确定。
  2. 返回设计器并更改任何内容(例如移动按钮位置)。
  3. 保存(Ctrl+S)--> 错误:“应该有两个或更多的类部分”
英文:

In my case, the problem seems to be adding a second class in the form class file.

Workaround: Define the new class in another file.

Steps to reproduce the issue [Visual Studio 17.5.0 final]:

  1. Create a new project:
    Template: Windows Forms App (C#). Next.
    Set project name (i.e. MyApplication). Next.
    Framework: .NET 6.0 (Long Term Support). Create.
  2. (Visual Studio creates the project and opens Form1.cs in designer)
  3. Add a button control to form. Save (Ctrl+S). Ok.
  4. F7 to access form code.
  5. Add a second class (i.e. MyClass) below Form1 class, in the same namespace:
namespace MyApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
      
    public class MyClass
    {
        public string Name { get; set; }
    }
}
  1. Save (Ctrl+S). Ok.
  2. Return to designer and change anything (i.e. move the button position).
  3. Save (Ctrl+S) --> Error: “Should have two or more class parts”

huangapple
  • 本文由 发表于 2023年2月24日 12:57:01
  • 转载请务必保留本文链接:https://go.coder-hub.com/75552766.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定