2015-05-29 82 views
0

我正試圖添加一個上下文菜單條到正在運行時創建的按鈕。我不想將新項目添加到預先存在的地帶。在C#中運行時添加上下文菜單條

Visual Studio給我一個錯誤,指出索引超出了界限。即使菜單已經在設計器中預付費,Visual Studio也會說菜單找不到。

代碼添加菜單:

btnOutline.ContextMenuStrip = Utilities.Find<ContextMenuStrip>("projectBtnStrip"); 

代碼Utilities.Find():

public static T Find<T>(string name) 
    { 
     return (T)Convert.ChangeType(fm.Controls.Find(name, true)[0], typeof(T)); 
    } 

的查找()函數與所有其他類型的工作,只是沒有這一個。我甚至創建了一個名爲FindMenuStrip的非通用版本,但這不起作用。目標是在運行時添加菜單條目,以便用戶可以添加帶有此條的新按鈕。有任何想法嗎?

回答

1

由於contextMenuStrip不是表單的控件集合的一部分,所以它沒有找到「控件」,因此您正在收到該消息。按鈕,標籤,文本框等都在該控件集合中,而不是contextMenuStrip。您必須將其傳遞給您的方法,或者使用屬性來檢索它。

相關問題