有几个有关mshflexgrid问题
1.为什么用查询记录给mshflexgrid赋值时总是第一列是空的,从第二列才开始呢?现在的处理办法是隐藏第一列才行
2.列宽是否可以设定为自动列宽,就是根据赋值内容调整?
3.现在是整体用查询记录赋值给mshflexgrid,我还想在其中插入几列用于显示有关内容,怎么才能做到?这个真不知道怎么弄了,以上两个问题还可以将就着
请教

解决方案 »

  1.   

    说说想法吧。
    1.设置断点,把查出纪录的SQL语句放到toad之类的工具里执行一下,看第一条是否为空。可能是你取的字段正好没值。
    2.这个不清楚,估计你要先取得值的长度,再MSHFlexGrid1.ColWidth(i) = 内容长度
    3.可以将查出的数据连同要插入的列先添加到数组或别的recordSet中,再用新的recordSet与控件绑定。
      

  2.   

    不要去全盘绑定,你使用绑定,那就完不成.一个个格去写入数据就可以了.全盘绑定就必须下recordset的注意了.相当走了弯路
      

  3.   


    '-----------------mshflexgrid 赋值 。---------------------
     With MSFGList'
            .Redraw = False
            If RstTemp.RecordCount <> 0 Then
                If RstTemp.RecordCount > 69999 Then
                    MsgBox "数据量过大,内存溢出! "
                    Exit Sub
                Else
                    RowCount=1' 第0行是固定行,用于显示列名
                    RstTemp.MoveFirst
                    Do Until RstTemp.EOF
                        .AddItem Trim(RstTemp.Fields("XX")) & vbTab & _
                         Trim(RstTemp.Fields("XX")) & vbTab & _
                         Trim(RstTemp.Fields("姓名")) & vbTab & " " & _
                         Trim(RstTemp.Fields("XX编号")) & vbTab & _
                         Trim(RstTemp.Fields("XXXX")), RowCount
                         RowCount = RowCount + 1
                         RstTemp.MoveNext
                    Loop
                End If
            End If
            .Redraw = True
        End With
    '-----------------------------------------
      

  4.   

    说说想法吧。
    1.设置断点,把查出纪录的SQL语句放到toad之类的工具里执行一下,看第一条是否为空。可能是你取的字段正好没值。
    第一条不为空的,显示出来的第一列就是空的,必须隐藏起来才好看点
      

  5.   

    发现lz不喜欢用msdn,每个控件的属性、方法、事件在msdn中写的很清楚。
    单个单元格赋值.textmatrix(r,c)=...另外,vb对数据库的编程,强烈建议不要使用控件绑定,绑定的限制很多,灵活性非常差。