在新加记录的表单中,默认得是用tab键来移动焦点,我想用回车键,怎么办呢,我所有的控件都放在多页框内,谢谢。

解决方案 »

  1.   

    在表单的onkeypress判断if key=#13 Then edit2.setfocus;
      

  2.   

    什么“表单”?
    这种问题一般是判断当前控件的onkeypress,同My_first(小@_@小)
      

  3.   

    这种应该更方便些吧...procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = VK_RETURN then
      begin
        Key := 0;
        KeyBd_Event(VK_TAB, 0, 0, 0);
      end;
    end;
      

  4.   

    unit Data_TabChangeEnterGridFrm;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids;type
      TForm23 = class(TForm)
        DBGrid1: TDBGrid;
        DBNavigator1: TDBNavigator;
        BitBtn1: TBitBtn;
        procedure BitBtn1Click(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormCreate(Sender: TObject);
        procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form23: TForm23;implementationuses UserJoin_Modulefrm;{$R *.DFM}procedure TForm23.BitBtn1Click(Sender: TObject);
    begin
    Close;
    end;procedure TForm23.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Action:=caFree;
    end;procedure TForm23.FormCreate(Sender: TObject);
    begin
    DataModule1.Query1.DatabaseName:=ExtractFilePath(Paramstr(0))+'DatabaseFile\';
    //ShowMessage(DataModule1.Query1.DatabaseName);
    DataModule1.DataSource1.DataSet:=DataModule1.Query1;
    DataModule1.Query1.Close;
    DataModule1.Query1.SQL.Clear;
    DataModule1.Query1.SQL.Add('Select * from Lottery_Table.DB');
    //showmessage(DataModule1.Query1.Text);
    DataModule1.Query1.Open;
    end;
    procedure TForm23.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
    if Key=#13 then
     if not (ActiveControl is TDBGrid) then
      begin
       Key:=#0;    //忽略
       Perform(WM_NEXTDLGCTL,0,0); //到下一个控件
      end
      else
       if (ActiveControl is TDBGrid) then
        begin
           With TDBGrid(ActiveControl) do
             if selectedindex<(fieldcount-1) then
            selectedindex:=selectedindex+1
              else
               selectedindex:=0;
        end;
    end;procedure TForm23.FormDestroy(Sender: TObject);
    begin
    Form23:=nil;
    end;end.