昨天,当我通过Windows窗体设计器调整UI时,我开始收到***“应该有两个或更多的类部件。"错误。这是在一个已建立的应用程序上。然后,我创建了一个快速Win窗体应用程序,该应用程序带有一个按钮,用于通过调试器测试一些计算代码。我编辑代码,执行程序,单击按钮,并使用调试器遍历代码。这工作得很好。但是,如果我试图调整按钮的大小,或者调整form 1窗口的大小并试图重新生成应用程序,我得到“应该有两个或更多类部件。"*错误,没有其他信息。当我查看Form1.Designer.cs**时文件,它将保留尝试调整UI之前的原始设置。如果关闭Visual Studio,我必须同意放弃对项目所做的任何更改。重新打开Visual Studio项目时,我的应用运行正常,除非我尝试以任何方式更改UI(调整大小、添加控件等)。
我试着用C#创建一个新的应用程序,也出现了同样的错误。这个应用程序在简单性上接近于“Hello World”。我确实注意到昨天Visual Studio被打了补丁/升级了。我怀疑这可能与新应用程序以及旧的、成熟的应用程序上突然出现的问题有关。我试过devenv /Safemode,但没有帮助。
下面是我的Designer.cs的一部分。当我直接编辑这个文件来添加button 1的BackColor和Form 1的大小,然后保存Designer.cs文件并执行程序时,一切都运行得很好。错误似乎出在Windows窗体设计器上。
我想添加标签“net7.0-windows”,但我没有足够的声誉点这样做,该标签尚未创建。
private void InitializeComponent()
{
button1 = new Button();
SuspendLayout();
//
// button1
//
button1.Location = new Point(28, 18);
button1.Name = "button1";
button1.Size = new Size(314, 105);
button1.TabIndex = 0;
button1.Text = "Calculate Tables";
button1.BackColor = System.Drawing.Color.Orange;
//button1.UseVisualStyleBackColor = true;
button1.Click += button1_Click;
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(400, 200);
Controls.Add(button1);
Name = "Form1";
Text = "Form1";
ResumeLayout(false);
}
1条答案
按热度按时间pn9klfpd1#
看起来与this thread中报告的问题相同。我发布了一个可能的解释和解决方案。复制粘贴到此处以提高可见性:
在我的例子中,问题似乎是在窗体类文件中添加第二个类。
重现此问题的步骤[Visual Studio 17.5.0最终版]:
1.创建新项目:模板:Windows窗体应用程序(C#)。下一步。设置项目名称(即MyApplication)。下一步。框架:. NET 6.0(长期支持)。创建。
1.(Visual Studio创建项目并在设计器中打开Form1.cs)
1.向窗体添加按钮控件。保存(Ctrl + S)。确定。
1.在同一命名空间中,在Form1类下面添加第二个类(即MyClass):
1.保存(Ctrl + S),确定。
1.返回设计器并更改任何内容(即移动按钮位置)。
1.保存(Ctrl + S)--〉错误:"应具有两个或多个类部件"