DBGridEh按回车进入下一列

以下代码在delphi7.0地下调试通过,仅适合于DBGrid中的列与ADOQuery中的字段相互对应的情况
 
procedure TfrmPattern_Add.DBGridDetailKeyDown(Sender: TObject;   var Key: Word; Shift: TShiftState);
var
  i: Integer;
begin
  case Key of
    VK_RETURN:  //回车键
    begin
      if (DBGridDetail.SelectedIndex = ADOQryDetail.FieldCount) then  //最后一列
        Key:= VK_TAB
      else
      begin
        i:= DBGridDetail.SelectedIndex;
        if i + 1 < DBGridDetail.Columns.Count then //最后一列
          Inc(I)
        else i:= 0;
        while(i <> DBGridDetail.SelectedIndex) and ((not DBGridDetail.Columns[i].Visible)           or DBGridDetail.Columns[i].ReadOnly)   do  //跳过不可见列和只读列
        begin
          if i + 1 < DBGridDetail.Columns.Count then
            Inc(i)
          else i:= 0;  //最后一列可见且非只读列
        end; //while
        if(i <= DBGridDetail.SelectedIndex) and Assigned(DBGridDetail.DataSource)           and Assigned(DBGridDetail.DataSource.DataSet) then
            DBGridDetail.DataSource.DataSet.Next; //如果是最后一列,datasource进入下一条记录
        DBGridDetail.SelectedIndex:= i;
      end; //else
    end; //case Key of VK_RETURN
 end; //case
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值