要实现stringgrid1.cells[7,0]按回车后光标在下一行stringgrid[7,1]
请问高手该如何写代码

解决方案 »

  1.   

    form的keydown事件,把键位定义成回车总会把,
      if key = 13 then
       stringgrid1.cells[7,0].setfocus;
    你说如果是下一行的话那把行号+1就可以了,不具体写了
      

  2.   

    LXHXQY,你的办法不行,我要在这个格子里输入内容,然后按回车跑到下行接着输入keydown事件是针对任意键的,得用keypress
    而且你说的这个stringgrid1.cells[7,0].setfocus;根本编译不通过
      

  3.   

    on StringGrid1.OnKeyPress 
    begin
      if (Key = #13) and (StringGrid1.Col = 7) then
      begin
        if StringGrid1.Row <> StringGrid1.RowCount then //如果是最后一行,则不换行
         begin
          StringGrid1.Row := StringGrid.Row + 1;
          StringGrid1.Col := 7
        end;
      end;
    end
      

  4.   

    楼上的基本正确,借他的代码改改
    on StringGrid1.OnKeyDown
    begin
      if Key = VK_RETURN then
      begin
        if StringGrid1.Row <> StringGrid1.RowCount-1 then //如果是最后一行,则不换行(如果你有标题行就减)
          StringGrid1.Row := StringGrid1.Row + 1; //不是最后一行就加,反则不动作
        Key  :=  Ord(0); //千万记住要吃掉回车
      end;
    end