我在DBGIRD中打开了一个空表,例如有两个字段 “学号”,“姓名”
我想实现 输入一个记录后此记录就不能更改了,但可以添加另一条记录。
如:我输入第一条记录后,点击一个自建的“添加”botton,该记录就写入了,
但此后就不允许更改了!!并且记录光标自动下移一行,出现一个空白的行用于第二个记录的输入,
怎么实现那
变通一下,点击一个自建的“添加”botton,然后Insert,修改DBGrid的ReadOnly属性,不点击就不让他添加
可以加一个标示字段:假设字段名为bs,在添加记录时给它一个初始值(也可以在建表时给一个默认值0),在记录提交之后给它重新赋值,在dbgrid的oncellclick事件进行
控制:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if adoTable1xh.AsInteger >0 then
begin
dbgrid1.ReadOnly :=true;
end
else dbgrid1.readonly:=false ;
end;
给分吧!谢谢!
可以这样试一下:
在DBGRID对应的数据源的AFTERSCROLL事件中写:
if DataSet.Stats in [dsInsert] then //当前在插入状态
begin
DataSet.FieldByName(字段名称).ReadOnly := false;//所有要控制的字段全设置一次
end
else
begin
DataSet.FieldByName(字段名称).ReadOnly := True;//所有要控制的字段全设置一次
end