如果我选中某个单元格,并按向下箭头到下一记录,但当到达datagrid能显示的最下面一条记录时,再按向下箭头到下一记录时焦点会从当前列转为第一列,这样的话会给我的用户造成不便,因为我的用户有时要一次修改或查询同一列的多条记录,请教各位高手?

解决方案 »

  1.   

    大概如下:执行类似的记录集操作
    if datagrid.recordset.eof then
       datagrid.recordset.movelast
    end if
      

  2.   

    下面是我以前用过的,但今天调试时总是移一行不行,隔行反而,请你再调试调试   If KeyCode = vbKeyDown Then
          Adodc1.Recordset.MoveNext
          With DataGrid1
              .SetFocus
              .Refresh
          End With
       ElseIf KeyCode = vbKeyUp Then
          Adodc1.Recordset.MovePrevious
          With DataGrid1
              .SetFocus
              .Refresh
          End With
       End If
      

  3.   

    楼主你好,这个问题可能是有些什么难度,弄得我也不好使了。据说微软的Datagrid1控件有些不太好用。
    你先将Datagrid1.AllowArrows和。WrapCellPointer两个属性都设置为True(代码设置也可以)。 这样就可以任何移动光标键了,但文本字段区不能移动(数字字段区能够移动),不知道是什么道理。
    我们这里的有人是使用文本框来做的,先得当前Datagrid1的行列位置,使用一个文本去掩盖那个位置,用它来代替输入及接受焦点,刷新后再更新到数据库。
      

  4.   

    上次写的那一段代码,移一行时得不到焦点,隔一行才得到焦点,不知道到底是为什么。以前没有深入研究过此类问题。如果你懂PB,使用PB控件就一点问题也没有。