如题,谢谢!

解决方案 »

  1.   

    在onkeypress 事件写:
        if  key=#13  then
          postmessage((sender as Tedit).handle,wm_keydown,vk_tab,0);
      

  2.   

    那怎么知道你是输入完了!起码有个条件吧!
       要不然那能有这么智能化,的要不然就是你的
       思想和computer连在一起了,你在想做什么
       它就做什么。我也想这样啊!
      

  3.   

    关键是怎么判断下一个是TEdit类型的控件并使它获得焦点。
      

  4.   

    在onkeydown 事件写:
        if  key=13  then
          edit2.setfouce;
      

  5.   

    edit 的 tag 
    支持 tab
      

  6.   

    ^_^有个控件根据你的Taborder顺序自动支持回车,上下箭头。你找不到可以给我发短信。
      

  7.   

    sendmessage(self.handle,WM_NEXTDLGCTL,0,0)
      

  8.   

    self.SelectNext(ActiveControl.handle,true,true);
      

  9.   

    回车 向下键往下走,上箭头往上走
    procedure TFrmDevice.EdtDeviceIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin 
        if (Key=VK_Return) or (Key=VK_Down) then
        begin
            Perform(WM_NEXTDLGCTL,0,0);
        end;
        if Key=VK_Up then
        begin
            Perform(WM_NEXTDLGCTL,1,0);
        end;
    end;
      

  10.   

    edit.text有长度限制吗?
    还是有规律性可言?procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if length(edit1.Text)=6 then
    begin
    key:=#0;
    sendmessage(self.handle,WM_NEXTDLGCTL,0,0);
    end;
    end;====================================================================像和尚的唐僧====================================================================
      

  11.   

    我用长度限制作为判断条件,然后再判断 parent中的下一个控件是否是TEdit类型,如果不是就让parent的下一个component获得焦点,再判断到componentsCount为止。但是提示是Component不能获得焦点,我又将其强制转化为Edit*类型,但是方法又不对。这种做法应是通用的,对每个控件不用单独写代码。
      

  12.   

    你在设计Tab Order 是就应将顺序调整好。然后在综合使用上面的方法。
      

  13.   

    在onkeypress这样写
    if key=#13 then
    begin
    key=#0;
    edit2.setfocus;
    end;
      

  14.   

    我想应该是在Edit控件输入完毕之后,通过发消息或其他方式来转移焦点,至于怎么判断输入完毕,这需要你自己来判断,否则计算机是不知道的,可以在onkeypress事件中判断
      

  15.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if length(edit1.Text)=6 then
    begin
    key:=#0;
    edit2.setfocus;
    end;
    end;
      

  16.   

    selectnext(activecontrol,true,true)
      

  17.   

    mxk19791116(幸运星) ,
    如果我的界面上有几十个Edit控件,岂不是要写一大堆OnKeyPress事件处理函数,还有我的目的也不是如何让计算机判断用户已输完,而是 怎样让众多的Edit控件只用一个方法就可以完成切换。
    因此我想了一个通用的方法:(C++Builder代码)TEdit *myedit = dynamic_cast(TEdit *)<sender>;
    if (myedit->Text.Length()==myedit.MaxLength)
    {
      for(;this->Components[myedit->tag+1]->ComponentIndex < this->ComponentCount;)      
          ((TEdit *)this->Components[myedit->tag+1])->SetFocus();//强制类型转换为Edit类型,否则不可使用SetFocus函数。
    }
    ...
    这样在所有的Edit类型的控件中引用相同的OnChang事件处理函数就可以了。
      

  18.   

    我用了Tag属性作为辅助手段,每个Edit控件的tag依次加一。
      

  19.   

    你在设计Tab Order 是就应将顺序调整好。并将Tag属性对应起来,自己再写一个通用的方法(由Tag来查找到相应的Edit并获取焦点)不就OK了吗。然后所有Edit的KEyDown事件均调用 它就可以了。