用mshflexgrid,如何实现数值为0时,在单元格中不显示呢?都显示为0看着特别乱?
请教各位老大.

解决方案 »

  1.   

    你是直接绑定的数据库
    还是绑定通过执行SQL语句的记录集
    如果是记录集的话可以在SQL语句中处理的
      

  2.   

    Dim i As Long, j As Long
        For i = 1 To msfg.Rows - 1
            For j = 1 To msfg.Cols - 1
                If msfg.TextMatrix(i, j) = "0" Then
                    msfg.TextMatrix(i, j) = ""
                End If
            Next
        Next
      

  3.   

    Dim i As Long, j As Long
        For i = 1 To msfg.Rows - 1
            For j = 1 To msfg.Cols - 1
                If msfg.TextMatrix(i, j) = "0" Then
                    msfg.TextMatrix(i, j) = ""
                End If
            Next
        Next
    ------------
    谢谢,这种办法用过,可是问题是对于数值型的可以,可是有的列不是数值型,比如行号,行号为0时总不能不显示吧.可是用代码如何区别某个单元格是数值还是字符呢?我的意思是只有数值才不显示,可是如果是字符,还是要显示出来的.比如序号等.
      

  4.   

    你用什么样的数据库?若是Access,在Access里打开后,在数据表的设计里若字段是文本,“允许空字符串”选“是”,若是数字,“必填字段”选“否”
      

  5.   

    单元格中显示的不管是什么类型你从textmatrix取到的都是字符的,没法区别的!这么说吧,字符0和数字0在你填充的时候有区别,但是填充以后就全部是字符了,是没法区别的,而且就算几个单元格显示0我也不觉的有什么乱的啊...
      

  6.   

    Dim i As Long, j As Long
     For i = 1 To msfg.Rows - 1
      For j = 1 To msfg.Cols - 1
      If msfg.TextMatrix(i, 1)="" Then '第一行是你必须显示的,比如序号。
        msfg.TextMatrix(i, j) = ""
                End If
            Next
        Next
      

  7.   

    改一下,第一列 
    If msfg.TextMatrix(i, 1)="" Then '第一列是你必须显示的,比如序号。
      

  8.   

    看来数据表中设计成充许null是有好处的。