我用msflexgrid想让它显示两行十列,我用
Private Sub initgrid()
   MSFlexGrid1.Clear
   MSFlexGrid1.TextMatrix(0, 0) = "图书编号"
   MSFlexGrid1.TextMatrix(0, 1) = "图书名称"
   MSFlexGrid1.TextMatrix(0, 2) = "读者编号"
   MSFlexGrid1.TextMatrix(0, 3) = "读者姓名"
   MSFlexGrid1.TextMatrix(0, 4) = "出版社"
   MSFlexGrid1.TextMatrix(0, 5) = "作者"
   MSFlexGrid1.TextMatrix(0, 6) = "图书类别"
   MSFlexGrid1.TextMatrix(0, 7) = "借书时间"
   MSFlexGrid1.TextMatrix(0, 8) = "还书时间"
   MSFlexGrid1.TextMatrix(0, 9) = "逾期时间"
   MSFlexGrid1.ColWidth(0) = 750
   MSFlexGrid1.ColWidth(1) = 1000
   MSFlexGrid1.ColWidth(2) = 750
   MSFlexGrid1.ColWidth(3) = 1500
   MSFlexGrid1.ColWidth(4) = 1500
   MSFlexGrid1.ColWidth(5) = 500
   MSFlexGrid1.ColWidth(6) = 500
   MSFlexGrid1.ColWidth(7) = 750
   MSFlexGrid1.ColWidth(8) = 750
   MSFlexGrid1.ColWidth(9) = 750
   MSFlexGrid1.Cols = 10
   MSFlexGrid1.Rows = 2
End Sub
这个函数控制,可是运行的时候只显示两行两列,而且提示“下标越界错误类型是381”
谁能帮我?好郁闷!

解决方案 »

  1.   

    说错了,请无视之
    你先要把MSflexGrid的属性修改成2行10列
      

  2.   

    MSHFLEXGRID的默认行列就是2行2列
    你还没设成2行10列就对第三列进行设置当然报错
    把最后两行命令移动函数一开始就可以了
      

  3.   

    请问那么接下去装入数据源的画,如何保持上面的结构不变呢?
    我用set MSFlexGrid1.datasource = rs(纪录集)
    然后所有原来设置的结构被冲掉了?
      

  4.   

    装入数据源的时候,类似下列代码
    for i=0 to rs.recordcount-1
       MSFlexGrid1.TextMatrix(i, 0) = rs!图书编号
       MSFlexGrid1.TextMatrix(i, 1) = rs!"图书名称
       MSFlexGrid1.TextMatrix(i, 2) = rs!"读者编号
       MSFlexGrid1.TextMatrix(i, 3) = rs!读者姓名
       MSFlexGrid1.TextMatrix(i, 4) = rs!出版社
       MSFlexGrid1.TextMatrix(i, 5) = rs!作者
       MSFlexGrid1.TextMatrix(i, 6) = rs!图书类别
       MSFlexGrid1.TextMatrix(i, 7) = rs!借书时间
       MSFlexGrid1.TextMatrix(i, 8) = rs!还书时间
       MSFlexGrid1.TextMatrix(i, 9) = rs!逾期时间
    next
      

  5.   

    set MSFlexGrid1.datasource = rs(纪录集)
    使用这个以后就直接将结构赋给了表格控件了!第一种方法是你使用循环,想表格中每一个单元格赋值的时候确定表头的!
    你的代码错在没有设置表格的列数。你给了10列而表格默认只有2行2列!
      

  6.   

    借贴顺便再问几个问题
    如何得到纪录集的字段个数呀?(非纪录集个数)
    可以让TextMatrix(1, i) 也如同TextMatrix(0, i)一样为黯色鼠标不可选么?(想做表头)
    TKS!