procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = vk_Left) or (Key = vk_up) or (Key = vk_Right) or (Key = vk_Down) then
    Key := ord(#0);
end;

解决方案 »

  1.   

    procedure TFrm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (Key=VK_Left) or (Key=VK_up) or (Key=VK_Right) or (Key=VK_Down) then
        Key := 0;
    end;
      

  2.   

    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      case Key of
        VK_LEFT, VK_RIGHT: if not TDBGrid(Sender).EditorMode then Key := 0;
        VK_UP, VK_DOWN: Key := 0;
      end;
    end;
      

  3.   

    procedure TFrm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (Key=VK_Left) or (Key=VK_up) or (Key=VK_Right) or (Key=VK_Down) then
        Key := 0;
    end;
    以上诸位老兄的方法都很好,在KeyPress事件中,无法捕获方向键,只能在KeyDown中!
      

  4.   

    嗯,你再试一下这个,看一下,行不行:)
    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
        if key in[037,038,039,040] then
              begin
              showmessage('您不能进行这项操作');
              key:=0;
              end;end;