在一个录入界面中,使用了接近140个txtbox。在打开这个页面的时候,速度变得奇慢,这个问题怎么解决呢?

解决方案 »

  1.   

    在From_load之前Me.Visible = False
    在Form_Activate中Me.Visible = True
      

  2.   

    Up在推存一个VB小工具软件名称:VB代码计算器
    软件类型:编程工具
    编程环境:VB6 + SP5
    适用系统:Win9x/2k/XP■ 软件介绍本程序能显示出你编写的VB源代码一共写了多少行,同时也支持其他类型的文件计算。特点:①界面美观,操作方便,你只需拖动你保存好的VB工程(组)文件到本程序窗口就可显示出源代码的总行数。②能自动分析VB工程(组)内包含的文件(这是可选的,也可以不自动分析并把他当作普通文件计算),并分别计算出每个文件所包含源代码的行数。③能自动隔离VB文件中由VB自动生成的代码,只计算用户输入的源代码,并可选择是否要排除空行或注释行的计算。④支持计算非VB文件,如文本文件、ini文件等。计算该类文件时只能排除空行的计算,其他只要不是空行都会累加到总行数中。⑤可暂停正在计算中的任务。⑥可以保存计算结果和被计算文件列表为文本文件,方便以后查询或打印输出。
    下载地址:
    华军软件 http://www.onlinedown.net/soft/7545.htm
    天空软件 http://www.skycn.com/soft/12423.html
      

  3.   

    上面的方法只能让人感觉是快了,如果140个控件有相通的属性或事件,建议用控件数组,因为VB之慢,都在启动时调用*.DLL画控件和初始化参数上的,如果用控件数组,就可以集中处理那些属性相同的控件了,而不必每个控件都单独处理。
      

  4.   

    不过我偶没有试过,偶做过的东西没有用过这么多的text
      

  5.   

    我用的就是控件数组,而且这几个控件用的数据源都是一个,在formload里面统一定义。
      For Each oText In Me.txtFields
        Set oText.DataSource = RSSale
      Next
    有没有更好的定义方式,直接定义,而不使用循环。
      

  6.   

    是啊,同意flxa的思想,一个窗体上同时有140个textbox,好象这本身就不合理的。把你的用意说出来,大家帮你改一改。
      

  7.   

    我觉得你可以自己做个控件,再结合楼上朋友说的,这样或许更快!你一个form放那么多text,控制起来不好控制,界面也不友好!如果非得用,那就用控件数组,起码你控制的话方便!我本人觉得这种方法不好!用dbgrid或其他网格控件应该更好!
      

  8.   

    谢谢大家的关心.我做的是一个保税的程序.
    用户提供了一张A3大小的表格,上面的项有加起来接近140项(用户不允许分开录入).因为时间比较紧,我就用vb的向导生成了一个form,简单修改了一些txt,有些用dtpick和checkbox等代替.当然form放不了这么多,我在form上建立了一个sstab,分页放置.这样在加载表单的时候,速度很慢,我这是p4的机器,用户的还没有这么好,恐怕速度更慢.
    我对vb不熟悉,如果使用grid的话,140多个在一个行上,是不是更难控制?
      

  9.   

    太同情半支烟了,140个放在Grid也是一件非常痛苦的是,不过分页分几个Grid的话是没问题的,对哦纵放就没问题 Grid 设两列 一列放项目名称,二列就是录入,就140行而已,一个小小的界面就可以咯,140列对于一个表格都小小小小KS了,推荐使用 VSFlexgrid ,我有8.0的,使用简单,我还可以给一些操作源码你看看
      

  10.   

    你既然用了sstab你可以这样做:
    在每一个tab内只放一个textbox,index设为0。在form load时只加载第一个tab的内容,其他的在之后点击任何一个tab时才加载,相信你一个tab里不会有太多的textbox吧。加载时你先把整个sstab隐藏起来会快点。
      

  11.   

    同意 fslyw() 
    补充一下,可以在加载完第一个tab后,在后台加载其他的tab
      

  12.   

    怎么控制在一开始加载一部分而不加载另一部分。假设sstab上有两个tab,tab1上一个txtbox1,tab2上一个txtbox2,如果只想加载txtbox1,如何实现。
      

  13.   

    答楼上的问题
    如果使用控件数组,就很容易实现,因为加载控件数组的其他控件,需要用load