小弟做一个工程,做着做着窗体内的控件数已经到了两百以上
这个,正做着,突然传来噩耗:“达到极限:该窗体不能再创建更多的控件”
原来是达到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)结尾)就可以
小弟在此先谢谢了 

解决方案 »

  1.   

    换个思路.能看到哪些,则创建哪些,在窗体上当时看不到的,则不需要加载.或者,将资料分组做成自定义控件.以人事为例子,有姓名,性别,年龄,职务等,把这些信息按"个人"的逻辑进行分类,做成"一条"记录,再做成一个自定义控件.每当需要显示一条"个人"记录时,就多LOAD一个这样的控件.另外,为什么不使用LISTIVEW之类的控件来进行显示呢?
      

  2.   

    好多控件了,楼主真犀利。学习ing.
      

  3.   


    我的所有控件(0)在窗体开始载入时都是不显示的 
    当加一个人时Load 控件(1),再加一个人就load 控件(2)
    通过这样的方式来保留 控件(1).value 和 控件(2).value 并在之后要调用时调用
    我用了tabstrip 点击第一个tab显示 控件(1),点击第二个tab显示 控件(2)自定义控件没听说过  等会我再研究下自定义控件 不需要重新做吧?Listview只能显示吧 而我全部是要进行填写的
    基本上全是label和textbox感谢赐教
      

  4.   

    使用LV显示,然后捕捉双击时的鼠标位置,将一个TextBox"移"到当前点击的Item处并设置得一样大.这样的话视觉上就好象是"编辑"了,就像Excel里的那种效果.当焦点离开或用户按了回车,则检查输入合法性(如果有必要),并设置到下面LV的相关Item中去,并将TextBox清空与隐藏.反正--------显示得再多,编辑时,也绝对只有一个地方可以输入.....
      

  5.   

    没办法,你之前的方案确实不好.不过按现在的思路重写,代码量绝对会少很多,还非常清晰.再说了------貌似目前你也只有重写这一条路可走了,HOHO.....这样的代码要改的话,真的不如重写.
      

  6.   

    我也遇到过一次,那个窗体实在控件太多,代码太多
    控件太多,只能控制,比如多余的放另外一个窗体上,点击按钮再显示
    代码太长只需要加一个过程就可以你的情况建议你不用数组,直接用控件,每次切换tab的时候重新调用人员信息再显示,这样绝对够用