For it = 1 To MSFlexGrid1.Rows - 2         s = MSFlexGrid1.TextMatrix(it, 5)
      d = MSFlexGrid1.TextMatrix(it + 1, 5)
        
        
    Picture1.Line (it, s)-(it + 1, d)
    
Next
请问老师这么画图,为什么只显示MSFlexGrid1.TextMatrix(it, 5)头两行的数据,而不能继续循环到最后呢
想让每次的it作为每次的x,每次的s作为y,然后连成曲线该怎么改

解决方案 »

  1.   

    设置Picture1.AutoRedraw = True
    试一下 
      

  2.   

    你那代码问题太多,我写了一段你先测试一下,参考我的代码改你的代码:
    Private Sub Command1_Click()
    Picture1.Cls
    MSFlexGrid1.Rows = 20
    MSFlexGrid1.Cols = 20
    For it = 1 To MSFlexGrid1.Rows - 2
    For d = 1 To MSFlexGrid1.Rows - 2
    Randomize
    STR1 = Int((99 * Rnd) + 1)
    MSFlexGrid1.TextMatrix(it, d) = STR1
            Next
    Next
    Picture1.ForeColor = vbRed
     Picture1.AutoRedraw = True
     Picture1.Scale (0, 0)-(20, 20)
    For it = 1 To MSFlexGrid1.Rows - 2
      S = MSFlexGrid1.TextMatrix(it, 5)
            
          M = MSFlexGrid1.TextMatrix(it + 1, 5)
            Picture1.Line (it, Val(S))-(it + 1, Val(M))
    Next
    End Sub
      

  3.   

    Picture1.ForeColor = vbRed
     Picture1.AutoRedraw = True
     Picture1.Scale (0, 0)-(100, 20)
    For it = 1 To MSFlexGrid1.Rows - 2
      S = MSFlexGrid1.TextMatrix(it, 5)
            
          M = MSFlexGrid1.TextMatrix(it + 1, 5)
            Picture1.Line (it, Val(S))-(it + 1, Val(M))
    Next
    End Sub这个成功了,不过数据太长怎么能加一个横向滑动条呢,并且在每一个点显示相应的M或s呢
      

  4.   

    相应的M或s数值
    是不是可以这样,用Val(M)) +4,然后输出数值,这样就是在原来的点+4的位置显示数值了,不影响图的美观