已达到限制无法再为此表单 VB6 创建任何控件

  • 本文关键字:表单 VB6 创建 控件 任何 vb6
  • 更新时间 :
  • 英文 :


我无法在我的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 会询问您是否要创建一个控制数组(说"是"(,此后每次您创建标签的新副本时,它都会自动为您增加索引。

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

最新更新