把option中的gorowselect设为true,然后在onSelectCell处理就ok了:)

解决方案 »

  1.   

    你是说焦点移到别的控间上,还是说焦点仍在stringgrid上,只是换了行
    如果是第一种意思则如下:
    procedure TForm1.StringGrid1Enter(Sender: TObject);
    begin
            ShowMessage('Enter');
    end;
    procedure TForm1.StringGrid1Exit(Sender: TObject);
    begin
            ShowMessage('Exit');
    end;
      

  2.   

    第二种方法: xzm2000(不是云) 说得对!
    但如果你不想选中一整行,则
    var Prev:integer;
    procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
      ARow: Integer; var CanSelect: Boolean);
    begin
            if ARow<>prev then
            begin
                   HandleMsg; 
            end;
            prev:=ARow;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
            Prev:=-1;
    end;