我正在尝试向运行时创建的按钮添加上下文菜单条。我不是要尝试将新物品添加到预先存在的条带中。
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,但是没有用。目标是在运行时添加菜单,以便用户可以添加具有此条带的新按钮。有什么想法吗?
答案 0 :(得分:1)
您收到该消息是因为contextMenuStrip不是表单控件集合的一部分,所以它没有找到“控件”。按钮,标签,文本框等位于该控件集合中,而不是contextMenuStrip。您必须将它传递给您的方法,或者使用属性来检索它。