如何在多个DBgrid之间输入信息时,按回车键光标自动跳到下一个DBgrid.谢谢.(50分)

  • 主题发起人 主题发起人 liaoqiang
  • 开始时间 开始时间
L

liaoqiang

Unregistered / Unconfirmed
GUEST, unregistred user!
我在编一个软件时用DBgrid来显示数据库数据,当用插入和追加时,输入信息时如何在
输完一个字段时按回车键光标自动跳到下一个DBgrid。多谢我的电子邮件是:liaoqiang@
sina.com。
 
这种程序作法都一样的。

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
DBGrid2.SetFocus;
end;
 
借光,如果是跳到下一个记录呢?(同一个DBgrid内)
 
DBGrid中如何让回车变为光标右移动

A:在Form.OnKeyPress事件中写如下代码:

if Key = #13 then
if ActiveControl = DBGrid1 then begin
TDBGrid(ActiveControl).SelectedIndex := TDBGrid(ActiveControl).SelectedIndex + 1;
Key := #0;
end;

有2点需要注意:
1.当光标达到DBGird最右列的时候,再按回车,光标还会停留在原地。
2.Key := #0一句让光标移动到下一列以后处于浏览状态,如果去掉这行代码光标移动到下一列以后将处于编辑状态。
 
www.borland.com.cn上有一个官方提供的方法,你自己去找找吧。
 
procedure TfrmMain.FormKeyPress(Sender: TObject; var Key: Char);
begin
begin
if key=#13 then selectNext(ActiveControl,True,True);
end;

用这个吧,因为通用,它是以控件的TabOrder属性为顺序的。
记得要把frmMain的KeyPreview属性改为True;

To:flyhero 这个就用 DataSet.Next;

 
使用setfoucs 方法比较简单,如果想做的通用一些就用KEYPRESS大方法:
即再onkeypress的事件中判断是否有回车,下次可以给你一个参考源程!
 
试试这个消息方式,一定很满意,但是要考虑memo的问题。放在form的keypress事件
if Key=#13 then begin
SendMessage(Handle,WM_NEXTDLGCTL,0,0); Key:=#0;
end;
 
多人接受答案了。
 
后退
顶部