如何实现应用程序中的”回车”成TAB?
其实方法有很多种,但哪一种才是最简洁、最灵活的呢?
下面的方法就是博主最常使用的方法:
一、在你的数据模块中,添加如下代码:
interface   。。。。。。   type     TMessageHandler = class     //使得回车消息转换成Tab消息       class procedure AppMessage(var Msg:TMsg;var Handled:Boolean); end; implementation class procedure TMessageHandler.AppMessage(var Msg: TMsg; var Handled: Boolean); begin   if Msg.message=WM_KEYDOWN then     if (Msg.wParam=VK_RETURN ) and       (         (Screen.ActiveForm.ActiveControl is TEdit) or                       (Screen.ActiveForm.ActiveControl is TComboBox) or         (Screen.ActiveForm.ActiveControl is TCheckBox) or         (Screen.ActiveForm.ActiveControl is TRadioButton)               //可以添加需要的控件       )     then     begin       Msg.wParam:=VK_TAB;     end     else if (Msg.wParam=VK_RETURN) and       (        (Screen.ActiveForm.ActiveControl is TDBGrid)       )     then     begin       with Screen.ActiveForm.ActiveControl do       begin         if Selectedindex<(FieldCount-1) then           Selectedindex:=Selectedindex+1{ 移动到下一字段}         else           Selectedindex:=0;       end;     end; end;
二、为了使得整个应用程序都能够实现主要的功能,在主窗体的OnCreate事件中添加如下代码:
procedure TfmMain.FormCreate(Sender: TObject); begin     Application.OnMessage:=TMessageHandler.AppMessage; end;
到此为止,你的应用程序已经实现了这个Enter->Tab的转换.

谢祥选【小宇飞刀(xieyunc)】