我通过遍历所有单元格的方式来设置MSFlexGrid所有单元格的格式,比如让每行的颜色交替变化的。
   用的是For循环来遍历。问题是我将遍历设置格式的代码放到Form_Load事件中执行,速度还好,看不到刷新表格的情况。但我将同样的一段代码放到Command_ClicK事件执行时,会明显看到表格会一行接一行的刷新一遍。
请问有办法改善这种情况么?能不用遍历的方法来设置颜色交替显示么?或者用别的方法改进这种刷新的情况。为啥放到Form_Load事件中却看不到明显的刷表格呢?请指教!谢谢!

解决方案 »

  1.   

    Form_Load时做这个时窗体还没有显示,你看不到罢了
      

  2.   

    先设置autoredraw=false…………做完后autoredraw=true
      

  3.   

    Form_Load在启动时运行一次,Command_ClicK每点一次就运行一次,记录条数很多的话,这种刷新会显得慢,如果等待时间很短,在刷新时可以先隐藏,刷新后再显示.要么就只有换控件了
      

  4.   

    与ListBox一样开始循环前 MSFlexGrid.Visible = False循环后 MSFlexGrid.Visible = True如果在Form_Load你想看到的话,可以先加 Me.Show再显示,但似乎没那必要。
      

  5.   

    交替显示我也是用循环
    Private Sub RowColor() '自定义间隔色
       With MSHFlexGrid1
          .Redraw = False
          For k = 1 To .Rows - 1
             .Row = k
             If k Mod 2 = 0 Then
                For J = 0 To .Cols - 1
                   .Col = J
                   .CellBackColor = &HFFFFF4
                Next J
             End If
          Next
          .Redraw = True
       End With
    End Sub
      

  6.   


            .Redraw = False
            
            .Redraw =True 
      

  7.   

    你大概不会不知道Step 2 吧?
    本来就慢,你还在循环体内加判断,脑残啊?
      

  8.   

    VB6自带的那几个表格控件都是鸡肋控件,考虑用第三方控件吧,比如VSFlexGrid,有个属性直接可以设置交替行的颜色。