簡體   English   中英

Windows 窗體控件消失了

[英]Windows form controls disappeared

我有一個 windows 窗體項目,它似乎在設計視圖中丟失了所有控件。 當我運行項目時,控件顯示為它們應有的樣子。 僅此表單的visual studio 中的設計視圖被破壞,所有其他表單都相同。

我嘗試重新打開解決方案並重新打開文件無濟於事。 我也嘗試清理和重建解決方案無濟於事。 我制作了描述問題的視頻屏幕截圖

我接下來應該嘗試什么?

哇好煩啊! 這讓我發瘋了,所以我浪費了 45 分鍾試圖修復它,而不必重新添加非常煩人的控件(而且這是過去幾周我在 VS 2017 中發生的第 3 次或第 4 次) .

對我來說,解決方案是在設計器文件中找到我的控件(通過“轉到實現”)。 然后我發現該控件的“.Add”行完全消失了? 在我自己手動將其添加回來並神奇地保存后,它重新出現在我的 Windows 窗體設計視圖中。 以下截圖供參考。

在此處輸入圖片說明

我的設置:

  • 視窗 7 x64
  • Visual Studio 2017 專業版 x64
  • Windows C# 窗體項目
  • 缺少的控件(大多數情況下)位於面板對象內

在 VS 2017 中,如果您從解決方案中排除 yourForm.Designer.cs,則再次重新添加應該可以解決問題。

可能您引用了相同解決方案中定義的一些用戶控件,但在不同的項目中,發生了什么變化,必須通過簡單的解決方案/重建全部解決。 如果不是,則可能是構建問題(混合 x86 和 x64 構建)

看起來更像是在 runetime 中調用了另一種形式。

您應該已捕獲代碼以了解應用程序的行為(如表單代碼和program.cs代碼)。

有類似的問題(唯一的區別是當我在調試模式下運行項目一兩次時控件是可見的,然后它們也消失了。)

我不得不手動重新添加在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 為該控件自動生成的內容控制類型。

快樂的小徑,下一小時吻別:)

檢查問題是否是designer.cs 沒有正確嵌套。 它必須在 .cs 文件下。 如果沒有,請右鍵單擊並“從項目中排除”所有與表單關聯的文件,然后將表單 (.cs) 重新添加回項目。 這將解決問題。

您可能正在尋找的是“工具箱”。

我找了這么久都迷路了。 只需一個簡單的 Ctrl+Alt+X 即可將其帶回來。

我在 Windows 10 (20H2) 上安裝了 Visual Studio 2019(版本 16.11.5),我注意到自 WinForm 項目上次版本升級以來的一個錯誤。 我有一個 WinForm 項目(.NET 4.8 目​​標),我添加了幾個控件(按鈕、標簽和文本框),然后開始添加一些代碼,然后返回 Form1.Design 選項卡,所有控件都消失了,所以我的解決方案是返回到 Form1.cs 選項卡,然后返回 Form1.cs[Design] 選項卡,所有控件都神奇地重新出現。 Visual Studio 設計選項卡中似乎缺少刷新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM