回车代码如下: procedure TPurchaseFrm.DBGridBookInfoKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if DBGridBookInfo.SelectedIndex<>DBGridBookInfo.FieldCount-1 then begin if DBGridBookInfo.SelectedIndex=0 then begin if DBGridBookInfo.Fields[0].IsNull then begin MessageDlg('图书编号不能为空',mtinformation,[mbok],0); exit; end; GetBookInfo(DBGridBookInfo.Fields[0].Value); IFTotal:=True; key:=#0; exit; end; //**如果在数量一行,并且数量和单价都不为0时,计算金额 if DBGridBookInfo.SelectedIndex=5 then begin LblNum.Caption:=IntToStr(StrToInt(Trim(LblNum.Caption))+DBGridBookInfo.Fields[5].Value); if (DBGridBookInfo.Fields[4].Value>0.0) and (DBGridBookInfo.Fields[5].Value<>0) then DBGridBookInfo.Fields[6].Value:=DBGridBookInfo.Fields[4].Value*DBGridBookInfo.Fields[5].Value; if IFTotal then begin LblTotal.Caption:=FloatToStr(StrToFloat(Trim(LblTotal.Caption))+DBGridBookInfo.Fields[6].Value); IFTotal:=False; end; end; if DBGridBookInfo.Fields[0].IsNull then begin MessageDlg('图书编号不能为空',mtinformation,[mbok],0); exit; end; DBGridBookInfo.SelectedIndex:=DBGridBookInfo.SelectedIndex+1; end else DBGridBookInfo.SelectedIndex:=0;