在一窗体中移动控件通常用TAB键,想用回车键代替,且不会明确知道所有控件的名称,不能显式移动,通过什么事件或函数实现呢,给出关键点就可以了,辛苦各位了,谢谢.

解决方案 »

  1.   

    if KEY=VK_RETURN then
    Perform(WM_NEXTDLGCTL, 0, 0);
    在窗体的FormKeyDown事件下写
      

  2.   

    keypress事件  
    if (key=#13) then
      begin
        edit_password.SetFocus ;
        edit_password.SelectAll ;
      end;
      

  3.   

    keypress事件 
    if key = #13 then
        Edit2.SetFocus;
      

  4.   

    OnKeyDownif Key = VK_RETURN then
      PostMessage(Handle, WM_KEYDOWN, VK_TAB, 1);
      

  5.   

    支持 alimyso(杨桦) 的做法。
      

  6.   

    用Enter键代替Tab键      在实际的程序开发中我们经常有这样的要求,用户不喜欢用Tab键,他希望用Enter键来代替。我们应该什么做呢? 
    首先:设定Form的KeyPreview属性为True。 
    其次:把Form上的所有Button的Default属性设为False。
    最后:在Form的OnKeyPress事件中添加如下代码:Procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); Begin
      If Key = #13 then
      Begin
        Key := #0;
        Perform(Wm_NextDlgCtl, 0, 0);  //向窗口发送信息
      End;
    End;
    或者
       在自定义的控件里,可以用下面的方法
    Var
      Form: TCustomForm;
    Begin
      Form := GetParentForm(Self);
      IF Form<>Nil Then Form.Perform(Wm_NextDlgCtl, 0, 0);
    End;