我无法以我的MDI格式创建新菜单。因为已经有很多现有菜单。
出现错误"reached limit cannot create any more controls for this form"
。
请帮助我了解如何添加此错误的新菜单。
答案 0 :(得分:8)
您可以将控件数组用于菜单,以克服每个表单限制中的256个控件。在菜单编辑器中,必须将Index
属性设置为唯一的整数值,以创建具有相同Name
的条目的控件数组。
一种常见的策略是为带有顶部菜单的控制数组指定mnuMain
的名称,即第一个mnuMain(1)
将是“文件”,然后mnuMain(2)
将是“编辑”,等等。< / p>
然后在表单代码中声明一个这样的枚举
Private Enum MenuIndexesEnum
idxFile = 1
idxEdit
idxTool
....
End Enum
并在整个代码中使用它,例如mnuMain(idxFile)
等。
对于“文件”子菜单,请为mnuFile
控件数组指定唯一索引,从1开始,对于“新建”,“打开”,“打印”等,“退出”并扩展MenuIndexesEnum
这样的枚举
Private Enum MenuIndexesEnum
idxFile = 1
idxEdit
idxTool
....
idxNew = 1
idxOpen
idxPrint
idxExit = 99
...
End Enum
然后继续使用mnuEdit
进入“编辑”子菜单,等等。
答案 1 :(得分:3)
正如@wqw所说,问题是您已达到256个每个表单控件的限制,解决方案是开始将它们包装到控件数组中。但是,(菜单)存在问题的控件不一定是您需要放入控件数组中的控件。
我发现最隐蔽,但最容易解决的控件“消费者”是散布在典型表格上各处的标签控件。为了将它们变成控制数组,我只是采用了在需要新标签时复制和粘贴现有标签的做法。第一次,VB会询问您是否要创建一个控件数组(例如“是”),此后,每次您创建标签的新副本时,它将自动为您增加索引。
对我来说,标签控件最容易制作成数组,因为通常没有与之关联的代码,因此根本不必担心索引。