请问各位:在DBGRID中,能不能实现输入完一项内容后,焦点自动到下一项内容上面。
具体说就是:在DGRID中,输完第一行第一列的“姓名”字段的内容后,焦点自动移到第一行第二列的“年龄”字段上。

解决方案 »

  1.   

    谢谢 syfly739(飞仔),如果按个回车键呢,代码如何写,放在哪个事件中来执行?
      

  2.   

    看一下回车键的代码是多少,好像是13。
    代码如下:procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
       if key =#13 then
       begin
          ...
       end;
    end;
      

  3.   

    begin
       ...
    end;
    ---------------------------------------
    如何让焦点定位到下个字段的内容上呢?
    比如:我输完了DBGRID中第一行第一列的内容,按下回车键后,怎么定位到第一行第二列的内容上?然后输完第一行第二列的内容后,又定位到第一行第三列的内容,依此类推!
      

  4.   

    if key=VK_RETURN then key:=vk_Tab;用tab键转换一下吧。应该可以。
      

  5.   

    用DBGRIDEH 在DELPHI盒子里有下 EHLIB ,里边有一个OPTIONEH 下的 DGENTERASTAB 设置为TRUE 就可以达到您要的效果了
      

  6.   

    if key=VK_RETURN then key:=vk_Tab;用tab键转换一下吧。应该可以。
    ----------------------------------
    按下回车键后没反应!
      

  7.   

    设置窗体的KEYPREVIEW为TRUE
    ----------------------------------
    谢谢了,还是不行·!
      

  8.   

    试试这个
    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
        begin
          if dbgrid1.SelectedIndex<dbgrid1.Columns.Count-1 then
            begin
              dbgrid1.SelectedIndex:=dbgrid1.SelectedIndex+1;
            end
          else
            begin
              dbgrid1.DataSource.DataSet.next;
              dbgrid1.SelectedIndex:=0;
            end;
        end;
    end;
      

  9.   

    coffee36(咖啡):你最后让我试的这个方法可以,一句话—太谢谢了!
    也感谢guolifeng(Studying) 等热心的高手,谢谢!