dbgrid怎么才能在输入的时候降焦点锁定此行 不允许键盘鼠标向其他行移动
主要这个表所有列都是限制的非空字段
如果在某列没输入任何值就移动到其他行的时候
程序就会报错
问题点数:20、回复次数:2Top
1 楼hahafan(注意!此人前途迷茫)回复于 2006-03-15 17:27:06 得分 10
可以在dbgrid的关联数据集的BeforeScroll事件中写代码判断是否允许用户换行,如:
if DataSet.FieldByName('xxx').IsNull then
Abort;
Top
2 楼alren(alren)回复于 2006-03-15 18:58:08 得分 10
我也遇到这样的问题。
如果是键盘上下移动,可以在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;Top




