不用去掉,实际上移动的那个焦点并没有被选中。你可以用下面两个方法测试一下:procedure TForm1.Button1Click(Sender: TObject); begin Showmessage(Inttostr(DBGrid1.SelectedRows.Count)); end;procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if gdSelected in State then DBGrid1.Canvas.Font.Color:=clRed; if gdFocused in State then DBGrid1.Canvas.Brush.Color:=clSkyBlue; DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State); end;
begin
Showmessage(Inttostr(DBGrid1.SelectedRows.Count));
end;procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if gdSelected in State then
DBGrid1.Canvas.Font.Color:=clRed;
if gdFocused in State then
DBGrid1.Canvas.Brush.Color:=clSkyBlue;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;