在C#运行时添加上下文菜单条

时间:2015-05-29 13:31:38

标签: c# runtime contextmenustrip

我正在尝试向运行时创建的按钮添加上下文菜单条。我不是要尝试将新物品添加到预先存在的条带中。

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,但是没有用。目标是在运行时添加菜单,以便用户可以添加具有此条带的新按钮。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您收到该消息是因为contextMenuStrip不是表单控件集合的一部分,所以它没有找到“控件”。按钮,标签,文本框等位于该控件集合中,而不是contextMenuStrip。您必须将它传递给您的方法,或者使用属性来检索它。