达到限制无法为此表单vb6创建任何更多控件

Vim*_*ngh 3 vb6

我无法用我的mdi格式创建一个新菜单.已经有很多现有菜单了.

它给出错误"reached limit cannot create any more controls for this form".

请帮助我知道如何添加此错误的新菜单.

wqw*_*wqw 8

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

一个常见的策略是mnuMain用顶级菜单指定控件数组的名称,即首先mnuMain(1)是"文件",然后mnuMain(2)是"编辑"等.

然后在表单的代码中声明一个这样的枚举

Private Enum MenuIndexesEnum
    idxFile = 1
    idxEdit
    idxTool
    ....
End Enum
Run Code Online (Sandbox Code Playgroud)

并在整个代码中使用它等mnuMain(idxFile).

对于"文件"子菜单指定mnuFile控制数组,其唯一索引从1开始,用于"新建","打开","打印"等."退出"并扩展MenuIndexesEnum枚举像这样

Private Enum MenuIndexesEnum
    idxFile = 1
    idxEdit
    idxTool
    ....
    idxNew = 1
    idxOpen
    idxPrint
    idxExit = 99
    ...
End Enum
Run Code Online (Sandbox Code Playgroud)

然后继续mnuEdit"编辑"子菜单等.


小智 6

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

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

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