Windows窗体控件消失了

时间:2014-06-04 21:08:19

标签: c# winforms visual-studio screen controls

我有一个Windows窗体项目,似乎在设计视图中丢失了所有控件。当我运行项目时,控件按原样显示。对于此表单,只有Visual Studio中的设计视图被破坏,所有其他形式都是相同的。

我尝试重新打开解决方案并重新打开文件无济于事。 我也尝试过清洁和重建解决方案无济于事。 我做了一个描述问题的video screen capture

接下来我应该尝试什么?

6 个答案:

答案 0 :(得分:3)

在VS 2017中,如果从解决方案中排除yourForm.Designer.cs,那么请重新添加它以解决问题。

答案 1 :(得分:2)

可能你引用了同一个解决方案中定义的一些usercontrol,但在不同的项目中,改变了什么,必须通过简单的Solution / Rebuild All来解决。 如果没有,那么它可能是构建问题(混合x86和x64构建)

答案 2 :(得分:2)

有类似的问题(唯一不同的是,当我在调试模式下运行项目一两次时,控件是可见的,那么它们也已经消失了。)

我不得不手动重新添加在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();

    }

当然,我不知道调色板坐标需要什么。所以,我在代码中为x,y放了10,10。然后切换到设计师视图。对照物放在左上角。在Visual Studio破坏我的夜晚之前,我使用设计师将它放回原处的位置。

确保在InitializeComponent()方法之后找到对控件的引用:

    #endregion
    private System.Windows.Forms.ListBox listBox1;

还有一个提示:如果您不知道designer.cs类正在为您的特定控件寻找什么属性,只需从工具箱中创建一个新属性,然后返回代码以查看Visual Studio自动执行的操作。为该控件类型生成。

快乐的小道,并在接下来的一小时亲吻再见:)

答案 3 :(得分:1)

看起来更像是在运行时调用另一个表单 您应该捕获代码以了解应用程序的行为 (如表单代码和program.cs代码)

答案 4 :(得分:0)

检查并查看问题是否是未正确嵌套的designer.cs。它必须位于.cs文件下。如果没有,请右键单击并排除项目'与表单关联的所有文件,然后将表单(.cs)重新添加回项目。这将解决问题。

答案 5 :(得分:0)

哇,真烦人!这让我发疯了,所以我浪费了45分钟试图修复它,而不必重新添加超级烦人的控件(加上这是最近几周VS 2017在我身上发生的第三次或第四次) 。

对我来说,解决方案是在Designer文件中找到我的控件(通过“转到实现”)。然后我发现该控件的“ .Add”行完全消失了吗?在我手动将其添加回自己并保存后,它神奇地重新出现在Windows窗体设计视图中。以下截图供参考。

enter image description here

我的设置:

  • Windows 7 x64
  • Visual Studio 2017 Pro x64
  • Windows C#Forms项目
  • 缺少控件(大多数时间)一直在面板对象内