移动到最后一条记录时再按一下“下”就会追加一条记录,如果去掉这项功能 procedure TForm1.DataSource1Change(Sender: TObject; Field: TField); begin if TDataSource(Sender).DataSet.Eof then TDataSource(Sender).DataSet.Cancel; end; 针对这个问题我提一个,当按向下键是后新增一条记录,向上的时候判断新增记录是否为空,为空则删除,不为空则提示要保存后删除!!!
如果按向下键不要求增加,到最后一列一行才增加,可以如下在dbgrideh的KeyDown中写入:if key=vk_down then // key:=0; if key=13 then //回车 begin if dbgrideh1.SelectedIndex<>dbgrideh1.Columns.Count-1 then //是不是最后一列 dbgrideh1.SelectedIndex:=dbgrideh1.SelectedIndex+1 else begin dbgrideh1.DataSource.DataSet.Next;//next 改为insert 就可以实LZ要求 dbgrideh1.SelectedIndex:=0; end; end;