我有一个Windows Forms项目,似乎在设计视图中丢失了所有控件。当我运行该项目时,控件会正常显示。只有此表单在Visual Studio的设计视图中出现问题,所有其他表单都没有问题。
我已经尝试重新打开解决方案和重新打开文件,但均无效。 我还尝试过清理和重建解决方案,但也没有用。 我制作了一个视频屏幕截图描述了这个问题。
接下来我该尝试什么?
我有一个Windows Forms项目,似乎在设计视图中丢失了所有控件。当我运行该项目时,控件会正常显示。只有此表单在Visual Studio的设计视图中出现问题,所有其他表单都没有问题。
我已经尝试重新打开解决方案和重新打开文件,但均无效。 我还尝试过清理和重建解决方案,但也没有用。 我制作了一个视频屏幕截图描述了这个问题。
接下来我该尝试什么?
我曾经遇到过类似的问题(唯一的区别是在调试模式下运行项目时,控件有时会显示出来,但之后它们也消失了)。
我不得不手动重新添加在 designer.cs 文件中丢失的代码。
我的 initializeComponent() 方法被简化为以下代码:
private void InitializeComponent()
{
this.SuspendLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
我不得不逐个重新添加每个组件代码块,就像这一个 - listBox1:
private void InitializeComponent()
{
this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(10, 10);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(133, 43);
this.listBox1.TabIndex = 5;
//
// Form1
//
this.ClientSize = new System.Drawing.Size(550, 430);
this.Controls.Add(this.listBox1);
this.Name = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ListBox listBox1;
另外一个提示:如果你不知道 designer.cs 类在寻找你特定控件的哪些属性,请从工具箱中创建一个新的控件,然后回到代码中查看 Visual Studio 为该控件类型自动生成了什么。
祝你好运,接下来的一个小时就请拜拜了 :)
看起来更像是在运行时调用了另一个表单。
你应该捕获代码以了解应用程序的行为(例如表单代码和 program.cs
代码)。
检查并查看问题是否是由于 designer.cs 没有正确嵌套。它必须在 .cs 文件下面。如果不是,请右键单击并“从项目中排除”与表单相关的所有文件,然后将表单 (.cs) 重新添加到项目中。这将解决问题。