已达到限制无法为此窗体vb6创建更多控件

已达到限制无法为此窗体vb6创建更多控件,vb6,Vb6,我无法在我的mdi表单中创建新菜单。因为已经有这么多现有菜单 其给定错误“已达到限制”无法为此窗体创建更多控件“ 请帮助我了解如何添加带有此错误的新菜单。您可以对菜单使用控件数组,以克服每个表单256个控件的限制。在菜单编辑器中,您必须将Index属性设置为唯一的整数值,以创建具有相同名称的条目控制数组 常用的策略是为带有顶部菜单的控制阵列指定mnuMain名称,即首先mnuMain(1)将是“文件”,然后mnuMain(2)将是“编辑”,等等 然后在表单的代码中声明如下枚举 Private E

我无法在我的mdi表单中创建新菜单。因为已经有这么多现有菜单

其给定错误
“已达到限制”无法为此窗体创建更多控件“


请帮助我了解如何添加带有此错误的新菜单。

您可以对菜单使用控件数组,以克服每个表单256个控件的限制。在菜单编辑器中,您必须将
Index
属性设置为唯一的整数值,以创建具有相同
名称的条目控制数组

常用的策略是为带有顶部菜单的控制阵列指定
mnuMain
名称,即首先
mnuMain(1)
将是“文件”,然后
mnuMain(2)
将是“编辑”,等等

然后在表单的代码中声明如下枚举

Private Enum MenuIndexesEnum
    idxFile = 1
    idxEdit
    idxTool
    ....
End Enum
Private Enum MenuIndexesEnum
    idxFile = 1
    idxEdit
    idxTool
    ....
    idxNew = 1
    idxOpen
    idxPrint
    idxExit = 99
    ...
End Enum
并在整个代码中使用它,如
mnuMain(idxFile)

对于“文件”子菜单,指定
mnuFile
具有从1开始的唯一索引的控制数组,用于“新建”、“打开”、“打印”等“退出”,并像这样扩展
menuindexenum
枚举

Private Enum MenuIndexesEnum
    idxFile = 1
    idxEdit
    idxTool
    ....
End Enum
Private Enum MenuIndexesEnum
    idxFile = 1
    idxEdit
    idxTool
    ....
    idxNew = 1
    idxOpen
    idxPrint
    idxExit = 99
    ...
End Enum

然后继续使用“编辑”子菜单的
mnuEdit
,等等。

正如@wqw所说,问题是您已经达到了每个表单256个控件的限制,解决方法是开始将它们包装到控件数组中。但是,您遇到问题的控件(菜单)不一定是需要放入控件数组的控件

我发现,最阴险但最容易解决的控件“消费者”是散布在典型表单上的标签控件。为了将它们变成一个控制数组,我只是采用了在需要新标签时复制和粘贴现有标签的做法;第一次,VB会询问您是否要创建控件数组(说“是”),然后每次创建标签的新副本时,它都会自动为您增加索引

对我来说,标签控件是最方便的数组,因为通常没有与它们关联的代码,因此根本不需要担心索引。

related:related: