Delphi中﹐对于dbgrid控件﹐我想按回车后,自动跳到下个字段上去﹐应如何做呢 ﹖我试用sendmessage(handle,wm_nextdlgctl,0,0) 试不行﹐可能消息不正错吧﹐﹐﹐
请了解的高手告知一下……..

解决方案 »

  1.   

    //在窗体上放一个TApplicationEvents Name=apevt1
    //DBGrid.Name:=geh1
    procedure TTemplateForm1.apevt1Message(var Msg: tagMSG;
      var Handled: Boolean);
    begin
      if (Msg.message=wm_keydown) and (Msg.wParam=vk_return) then begin
        geh1.Perform(WM_KEYDOWN, VK_TAB, 0 );
        Handled:=True;
      end;
    end;
      

  2.   

    //dbgrid中,回车代替TAB
    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
     Shift: TShiftState);
    begin
    if Key = 13 then with TDbgrid(ActiveControl) do
         begin
         if Selectedindex<(FieldCount-1)then
           Selectedindex:=Selectedindex+1
         else
         begin
           dbgrid1.DataSource.DataSet.Next;
           if dbgrid1.DataSource.DataSet.Eof then
              dbgrid1.DataSource.DataSet.First ;       Selectedindex:=0;
         end ;
         end;
    end;   
      

  3.   

    已解決﹖
    我將sendmessage(handle,wm_nextdlgctl,0,0)
    改成
    sendmessage(handle,wm_keydown,vk_tab,0)
    即可請問一下﹐在delphi中如何查一個已定義的消息 ﹐及鍵盤上鍵的定義,如vk_tab 等....
      

  4.   

    在帮助 索引中输入 Virtual key codes
      

  5.   

    在帮助 索引中输入 Virtual key codes