如题,我需要在msflexgrid中显示上万条数据,如何快速显示呢,用additem方法太慢了

解决方案 »

  1.   

    with msflexgrid
        .Redraw = False
        .Rows = 10001
        For i = 1 To 10000
            .TextMatrix(i, Col1) = ""
            .TextMatrix(i, Col2) = ""
        Next
        .Redraw = True
    end with只知道这个了。
      

  2.   

    如果是从数据库中读取并显示,则用set mshflexgrid1.datasource=adodc1.recordset
    如果不是从数据库中读取,则用循环来增行显示
      

  3.   

    我并不是从数据库中显示,而是直接向msflexgrid中填入数据
      

  4.   

    设置datasource也是遍历整个记录集...
    要速度快,用块填充..块的大小在20行左右..
      

  5.   

    请教MSTOP(陈建华):
        用块填充的具体例子?
      

  6.   

    additem方法并不慢,这里有一个技巧,或许会对你有帮助:GRID1.VISIBLE=FALSE
    FOR I=0 TO 10000
     GROD1.ADDITEM...
      ...
    NEXT
    GRID1.VISIBLE=TRUE
    这样作避免了在添加记录的同时刷新网格,这才是最慢的地方,所以先将它设为不可见再添加记录,添加完后再设为可见。
    你试试看,应该会比以前快好多。
      

  7.   

    MsFlexGrid增加数据确实感觉不是特别快,所以如果是提取数据库记录建议用MsHFlexGrid,关注块的方法
      

  8.   

    关注,我还是觉得用DataSource比较快,当然是用在显示数据库数据喽!可我认为,如果不是用来显示数据库数据的话,那就应该不会有太多数据吧!我也试过真接写入到MSHFlexGrid并不是很慢,如果非要用它来搞一大笔数据的话,我建议,最好用数据库,因为真接导入的确挺慢的,只能接受少量数据的速度。
      

  9.   

    用Rows比用Additem快.当设置redraw属性后会更快.
    datasource使得加载在内部进行,当然会快很多.
      

  10.   

    set mshflexgrid1.datasource=adodc1.recordset
      

  11.   

    如何是数据库用这个 set mshflexgrid1.datasource=adodc1.recordset
    不是话用 additem是很慢没法