2015-05-29 112 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。您必须将其传递给您的方法,或者使用属性来检索它。

相关问题