老问题,有没有新的答案?关于dbgrid中回车键代替tab键的问题。
fangf 2001-12-25 10:50:59 DbGrid来操作数据表,实现数据表记录的添加和编辑。为了方便,所有切换操作由回车键完成,即依次切换每行的单元格位置,判断如果在行的末尾,就移动到下一行。如果是最后一行,则追加一条记录(是追加!而不是插入!)
下面这段代码可在TDBGrid/tstringGrid中用回车键代替TAB的功能
procedure tform1.formkeypress(sender:tobject;var key:char);
begin //判断接收者是否是回车
if key=#13 then //判断接收者是否是TDBGRID
if not (ActiveControl is TDBGrid) then
begin
key:=#0;
Perform(WM_NEXTDLGCTL,0,0); //跳转到下一个控件焦点
end
else if (ActiveControl is TDBGrid) then
begin
with TDBGrid(ActiveControl) do
if selectedindex<fieldcount-1 then
SelectedIndex:=SelectedIndex+1 //跳转到下一栏
else
SelectedIndex:=0;
end;
但是:
本人发现:以上方法并未实现:
如果是最后一行,则追加一条记录(是追加!而不是插入!)
只是把焦点回到原行的第一列而已
如何才能实现上面的功能?