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

时间:2018-10-18 09:12:41

标签: vb6

我无法以我的MDI格式创建新菜单。因为已经有很多现有菜单。

出现错误"reached limit cannot create any more controls for this form"

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

2 个答案:

答案 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会询问您是否要创建一个控件数组(例如“是”),此后,每次您创建标签的新副本时,它将自动为您增加索引。

对我来说,标签控件最容易制作成数组,因为通常没有与之关联的代码,因此根本不必担心索引。