我无法在我的mdi表单中创建新菜单。因为已经有很多现有的菜单。
它给出的错误"reached limit cannot create any more controls for this form"
.
请帮助我知道如何在此错误中添加新菜单。
您可以使用菜单的控件数组来克服每个表单限制的 256 个控件。在菜单编辑器中,您必须Index
属性设置为唯一的整数值,以创建具有相同Name
的条目的控件数组。
一种常见的策略是为带有顶部菜单的控制数组指定mnuMain
名称,即第一个mnuMain(1)
是"文件",然后mnuMain(2)
是"编辑"等。
然后在表单的代码中声明一个这样的枚举
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
"编辑"子菜单等。
正如@wqw所说,问题是你已经达到了每个表单 256 个控件的限制,解决方案是开始将它们包装到控件数组中。 但是,您遇到问题的控件(菜单(不一定是您需要制作到控件数组中的控件。
我发现最阴险但最容易解决的控制"消费者"是洒在典型表单上到处的标签控件。 为了将它们转换为控制数组,我只是采用了在需要新标签时随时复制和粘贴现有标签的做法;第一次,VB 会询问您是否要创建一个控制数组(说"是"(,此后每次您创建标签的新副本时,它都会自动为您增加索引。
对我来说,标签控件最方便制作成数组,因为通常没有与之关联的代码,因此根本不需要担心索引。