新建一个组件,屏蔽掉那个消息 procedure TMyGrid.WndProc(...); begin if Msg....=向下键 then exit; inherited Wndproc(Msg); end;
呵呵,改一点源吗,或者,DBGRID。DATASET。BEFOREAPPEND中写上ABORT;
去掉DbGrid的自动添加功能 关键词:DbGrid 移动到最后一条记录时再按一下“下”就会追加一条记录,如果去掉这项功能 procedure TForm1.DataSource1Change(Sender: TObject; Field: TField); begin if TDataSource(Sender).DataSet.Eof then TDataSource(Sender).DataSet.Cancel; end;http://www.nssoft.net/showdoc.asp?did=816
简单一点的: procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key = 40) and (adoquery1.RecNo = adoquery1.RecordCount) then key := 10; end;
procedure TMyGrid.WndProc(...);
begin
if Msg....=向下键 then
exit;
inherited Wndproc(Msg);
end;
procedure TForm1.DataSource1Change(Sender: TObject; Field: TField);
begin
if TDataSource(Sender).DataSet.Eof then TDataSource(Sender).DataSet.Cancel;
end;http://www.nssoft.net/showdoc.asp?did=816
就是如果你的DBGrid中显示的是AdoQuery1的数据的话,那么在AdoQuery1的BeforeInsert事件中写Abort就不会新增数据了当然,你要另增加数据得用另外一个AdoQuery或AdoCommand了
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = 40) and (adoquery1.RecNo = adoquery1.RecordCount) then key := 10;
end;
大量电脑书籍下载:
http://www.netyi.net/in.asp?id=ForMoreU