可以在dbgrid的关联数据集的BeforeScroll事件中写代码判断是否允许用户换行,如: if DataSet.FieldByName('xxx').IsNull then Abort;
我也遇到这样的问题。 如果是键盘上下移动,可以在onKeyDown中处理。但是如果是鼠标点击下一行,就不知该怎样处理? if not (DBGridEh.DataSource.DataSet.State in [dsInsert,dsEdit]) then exit; if (key=38) or (key=40) then begin Application.MessageBox(PChar('当前是新添或修改状态,不能离开当前记录!'),PChar('错误提示警告提示'), MB_OK+MB_ICONWARNING); WarningDlg(',''); key:=0; end;
if DataSet.FieldByName('xxx').IsNull then
Abort;
如果是键盘上下移动,可以在onKeyDown中处理。但是如果是鼠标点击下一行,就不知该怎样处理?
if not (DBGridEh.DataSource.DataSet.State in [dsInsert,dsEdit]) then
exit;
if (key=38) or (key=40) then
begin
Application.MessageBox(PChar('当前是新添或修改状态,不能离开当前记录!'),PChar('错误提示警告提示'), MB_OK+MB_ICONWARNING);
WarningDlg(','');
key:=0;
end;