簡體   English   中英

如何在沒有表單的情況下使用 Visual Studio 設計器

[英]How can I use Visual Studio designer without form

我正在使用 Visual Studio 創建一個 Windows 窗體項目。

我的項目的解決方案資源管理器中沒有表單類 - 我即時構建所有表單。 所以我沒有機會在 Visual Studio 或工具箱中打開設計器。

但我想創建一個 ContextMenuStrip 並在設計器中對其進行編輯。 我通常通過將 ContextMenuStrip 從 ToolBox 拖到 Designer 上來完成此操作。 但是,如果不先創建表單或用戶控件,我就沒有任何方法(我可以說)打開設計器。

如何在設計器中編輯 ContextMenuStrip 而無需先將其與窗體或用戶控件相關聯?

要清楚 - 我知道如何在代碼中動態生成 ContextMenuStrip。 那不是我想要的。 我想使用設計器來創建和編輯 ContextMenuStrip,而不必先將 ContextMenuStrip 與我不打算包含在我的項目中的窗體或用戶控件相關聯。

(Visual Studio 2013 Pro,如果重要的話)

我不相信這是可能的,而且我認為在仔細審查下這真的沒有意義。

Designer 是一種幫助您構建表單和用戶控件的工具。 真的是這樣。 它可以節省您編寫代碼來手動創建和繪制控件。 它提供了快捷方式和一個很好的圖形視圖,可以查看本質上是自動代碼生成的內容。

您嘗試創建的既不是新的UserControl類型,也不是新的Form類型 - 兩者都可以在設計器中創建。 這是一個菜單條,其中預先添加了某些內容。 這不能孤立存在。 它需要轉換為創建和添加成員到具體ContextMenuStrip對象的代碼。 該對象必須位於某個類( FormUserControl )中。 我不明白它怎么可能獨立存在。

同樣的問題……新的解決方案……

  1. 創建一個用戶控件(例如 UC1)
  2. 將 ContextMenu 添加到 UC1 作為 CC1 並在那里設計/編輯它
  3. 將 UserControl 添加到您的項目中(或通過代碼創建)
  4. 請參閱 UC1.CC1 了解您現在“非常有用”的 ContextMenu

您可以將 ContextMenuStrip 添加到表單,然后使用代碼修改表單,以便您使用單例類型屬性訪問它:

public partial class frmContextMenuHost : Form
{

    private frmContextMenuHost()
    {
        InitializeComponent();
    }

    private static frmContextMenuHost _frmContextMenu = null;

    public static ContextMenuStrip GetContextMenu
    {
        get
        {
            if (_frmContextMenu == null)
            {
                _frmContextMenu = new frmContextMenuHost();
            }
            return _frmContextMenu.contextMenuStrip1;
        }
    }

}

您打算如何使用 ContextMenuStrip 的事件?

暫無
暫無

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

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