我的目的是按enter键,可以让光标移动到下一个单元格,应该怎么控制

解决方案 »

  1.   

    移动到下一个单元格.有列,行,单元格.
    下面是个移动列单元格.行单元格类似.
    在stringgrid的OnkeyDown事件下写procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);begin  IF KEY=13 THEN
      BEGIN
       INC(I);
       IF I<STRINGGRID1.ColCount THEN
          BEGIN
          stringgrid1.Col:=I     ;
           END
           ELSE
           BEGIN
           I:=  I MOD STRINGGRID1.ColCOUNT;
           END;END;
    并且I为全局变量.
      

  2.   

    procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      case Key of
        VK_RETURN:
        begin
          if not TStringGrid(Sender).EditorMode then Exit;
          if TStringGrid(Sender).Col + 1 < TStringGrid(Sender).ColCount then
            TStringGrid(Sender).Col := TStringGrid(Sender).Col + 1
          else if TStringGrid(Sender).Row + 1 < TStringGrid(Sender).RowCount then
          begin
            TStringGrid(Sender).Col := TStringGrid(Sender).FixedCols;
            TStringGrid(Sender).Row := TStringGrid(Sender).Row + 1;
          end;
        end;
      end;
    end;