求助,如何超过一个窗体的控件最大数目

flameflash 2010-04-07 06:23:59
小弟做一个工程,做着做着窗体内的控件数已经到了两百以上
这个,正做着,突然传来噩耗:“达到极限:该窗体不能再创建更多的控件”
原来是达到255个了 不能再添加控件

而且要改用控件数组解决这个问题也不可能,因为小弟在窗体上添加的控件全是以(0)结尾的控件数组
(因为我预想了多人模式,多一个人就重新Load一个以(1)或者更大的数字结尾的控件数组显示出来
即 本来当事人信息有NameLabel(0)和NameText(0)两个控件 这时如果要同时录人另一个人的信息 直接Load NameLabel(1)和Load NameText(1)显示在窗体中就可以了
所以 我不能用控件数组来解决这个问题)

我不知道如何再添加更多的控件
我设想了三种解决方法 但是都不知道怎么实现
1 想办法超过256的限制,这个搜了好久都没办法解决
2 用WithEvents动态生成控件 但是我发现好像没办法生成控件数组 因为我是多人模式 一定需要生成的是控件数组
3 新建一个窗体Form2,然后再在里面建立如NameLabel(0)这样的控件数组 ,然后在Form1中用Load Form2.NameLabel(1)并set Form2.NameLabel(1).container = Form1 但是这样不行 我不知道如何在一个窗体中Load另一个窗体的控件数组

我的程序眼看就要完成了,却碰到这种问题,真是脑袋都想破了,也不知道怎么解决,痛哭啊,总不能从头再来吧
忘各位大侠帮帮我,不局限以上3种方法,用其它任何方法都可以,只要保证还能添加控件,并且添加的控件为新的控件数组的第一个(即以(0)结尾)就可以
小弟在此先谢谢了
...全文
152 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2010-04-09
  • 打赏
  • 举报
回复
king06 2010-04-08
  • 打赏
  • 举报
回复
最多339个控件,手上一个窗体上就是,不过不是我弄的.
zfl2k 2010-04-08
  • 打赏
  • 举报
回复
我也遇到过一次,那个窗体实在控件太多,代码太多
控件太多,只能控制,比如多余的放另外一个窗体上,点击按钮再显示
代码太长只需要加一个过程就可以

你的情况建议你不用数组,直接用控件,每次切换tab的时候重新调用人员信息再显示,这样绝对够用
嗷嗷叫的老马 2010-04-07
  • 打赏
  • 举报
回复
思路是很重要的...........
flameflash 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 myjian 的回复:]

引用 7 楼 flameflash 的回复:
这个时间浪费不起呀
没办法,你之前的方案确实不好.

不过按现在的思路重写,代码量绝对会少很多,还非常清晰.

再说了------貌似目前你也只有重写这一条路可走了,HOHO.....这样的代码要改的话,真的不如重写.
[/Quote]

崩溃了。。。。如果能早想到就好了
太感动了 谢谢你了 又学到了新东西
但是这不是我唯一的出路
我还有两条路
1 忍痛删除一些控件
2 把一部分控件移到另一个窗体里 然后用弹出窗体的形式来填写
这是唯一节约时间又能基本达到效果的方法了
唉 太郁闷了

真是太感谢你了 提供了我新的思路 以后在升级时再改好了
谢谢了
嗷嗷叫的老马 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 flameflash 的回复:]
这个时间浪费不起呀[/Quote]
没办法,你之前的方案确实不好.

不过按现在的思路重写,代码量绝对会少很多,还非常清晰.

再说了------貌似目前你也只有重写这一条路可走了,HOHO.....这样的代码要改的话,真的不如重写.
嗷嗷叫的老马 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 flameflash 的回复:]
Listview只能显示吧 而我全部是要进行填写的
[/Quote]
使用LV显示,然后捕捉双击时的鼠标位置,将一个TextBox"移"到当前点击的Item处并设置得一样大.

这样的话视觉上就好象是"编辑"了,就像Excel里的那种效果.

当焦点离开或用户按了回车,则检查输入合法性(如果有必要),并设置到下面LV的相关Item中去,并将TextBox清空与隐藏.

反正--------显示得再多,编辑时,也绝对只有一个地方可以输入.....
flameflash 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 myjian 的回复:]

换个思路.

能看到哪些,则创建哪些,在窗体上当时看不到的,则不需要加载.

或者,将资料分组做成自定义控件.

以人事为例子,有姓名,性别,年龄,职务等,把这些信息按"个人"的逻辑进行分类,做成"一条"记录,再做成一个自定义控件.

每当需要显示一条"个人"记录时,就多LOAD一个这样的控件.

另外,为什么不使用LISTIVEW之类的控件来进行显示呢?
[/Quote]

泪奔 我现在明白自定义控件的意思了
但是我现在都做成这个样子了 还有其它办法吗
用自定义控件我基本上就等于重做了 我都做了半个多月了 这个时间浪费不起呀
flameflash 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chenjl1031 的回复:]

大概楼主喜欢轻量控件,有时候都用轻量控件不能解决问题。
[/Quote]

不好意思 我没听说过轻量控件 我不太明白轻量控件是什么意思 可以解释一下吗?谢谢
flameflash 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 myjian 的回复:]

换个思路.

能看到哪些,则创建哪些,在窗体上当时看不到的,则不需要加载.

或者,将资料分组做成自定义控件.

以人事为例子,有姓名,性别,年龄,职务等,把这些信息按"个人"的逻辑进行分类,做成"一条"记录,再做成一个自定义控件.

每当需要显示一条"个人"记录时,就多LOAD一个这样的控件.

另外,为什么不使用LISTIVEW之类的控件来进行显示呢?
[/Quote]

我的所有控件(0)在窗体开始载入时都是不显示的
当加一个人时Load 控件(1),再加一个人就load 控件(2)
通过这样的方式来保留 控件(1).value 和 控件(2).value 并在之后要调用时调用
我用了tabstrip 点击第一个tab显示 控件(1),点击第二个tab显示 控件(2)

自定义控件没听说过 等会我再研究下自定义控件 不需要重新做吧?

Listview只能显示吧 而我全部是要进行填写的
基本上全是label和textbox

感谢赐教
zst24 2010-04-07
  • 打赏
  • 举报
回复
好多控件了,楼主真犀利。学习ing.
东方之珠 2010-04-07
  • 打赏
  • 举报
回复
大概楼主喜欢轻量控件,有时候都用轻量控件不能解决问题。
嗷嗷叫的老马 2010-04-07
  • 打赏
  • 举报
回复
换个思路.

能看到哪些,则创建哪些,在窗体上当时看不到的,则不需要加载.

或者,将资料分组做成自定义控件.

以人事为例子,有姓名,性别,年龄,职务等,把这些信息按"个人"的逻辑进行分类,做成"一条"记录,再做成一个自定义控件.

每当需要显示一条"个人"记录时,就多LOAD一个这样的控件.

另外,为什么不使用LISTIVEW之类的控件来进行显示呢?
东方之珠 2010-04-07
  • 打赏
  • 举报
回复
这么多控件啊,已达到吉尼斯世界纪录了!

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧