簡體   English   中英

在C#中的運行時期間添加上下文菜單欄

[英]Add context menu strip during runtime in 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));
    }

Find()函數確實適用於所有其他類型,但不適用於該類型。 我什至創建了一個名為FindMenuStrip的非通用版本,但這沒有用。 目標是在運行時添加菜單提示,以便用戶可以添加具有此菜單欄的新按鈕。 有任何想法嗎?

之所以收到該消息,是因為contextMenuStrip不屬於窗體的控件集合,因此找不到該“控件”。 按鈕,標簽,文本框等位於該控件集合中,而不是contextMenuStrip。 您必須將其傳遞給您的方法,或者也許使用屬性來檢索它。

暫無
暫無

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

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