请问怎么样移动MSFlexGrid中的光标?也就是让MSFlexGrid中的光标移动到上一行或者下一行,我用的是ADO对象。

解决方案 »

  1.   

    是不是这样:If MSFlexGrid1.Row<>0 Then MSFlexGrid1.Row=MSFlexGrid1.Row-1
      

  2.   

    不是很明白LZ的意思,是不是:fg.Row = fg.MouseRow
      

  3.   

    我是用ADO对象编程,采用如下方式在MSFlexGrid控件中显示数据库中的数据:
    Do While Not rs.EOF '从数据库中取数据
            MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = rs.Fields(1).Value
            MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = rs.Fields(2).Value
            rs.MoveNext
    Loop当用鼠标在MSFlexGrid中点击数据时,被点中的行会高亮度显示,现在我想做几个向前,向后移动的按钮,比如现在高亮度在第3行,当我点击向后移动时高亮度会就会移到第4行,现在请教怎么实际前后移动。因为控件并没有与RS绑定,所以RS的前后移动并不影响到MSFlexGrid的显示。
      

  4.   

    写按钮?UP/DOWN键就可了吧?
    要写的话,上移按键试试: 
        If fg.Row > 1 Then
            fg.Row = fg.Row - 1
            fg.ColSel = fg.Cols - 1
        End If
    下移按钮:
        If fg.Row < fg.Rows - 1 Then
            fg.Row = fg.Row + 1
            fg.ColSel =fg.Cols - 1
        End If
      

  5.   

    最简单的:
    下:
    MSFlexGrid.SetFocus
    SendKeys "{down}"
    上:
    MSFlexGrid.SetFocus
    SendKeys "{up}"
      

  6.   

    zfl2k(风) :你的方法真的很简单,感谢!
    vbman2003(家人):你的方法我试过了,也查了一些资料,确定是你说的那样,可是我在测试时却不行,不知道哪里出了问题,一按下去光标就不见了。
      

  7.   

    zfl2k(风) :如果要移动到第一条和最后一条也是用SendKeys ctrl+home  ctrl+end 吗? 呵呵
      

  8.   

    MSFlexGrid1.SelectionMode = flexSelectionByRow
      

  9.   

    如果要移动到第一条和最后一条也是用SendKeys ctrl+home  ctrl+end 吗? 呵呵
    -----------------------
    不错
      

  10.   

    northwolves(狼行天下) :MSFlexGrid1.SelectionMode = flexSelectionByRow 实现不了,控件本来就设置了单行选中。还是采用这种方式好了:
    第一条
    MSFlexGrid1.SetFocus
    SendKeys "^{PGUP}"最后一条:
    MSFlexGrid1.SetFocus
    SendKeys "^{PGDN}"