我在一个表单中放了一个编辑框和一个DBGrid控件,表单运行后,输入焦点放在了编辑框上,DBGrid中显示了一个数据库的一些记录。现在我用TAB键从编辑框移动到DBGrid中,再想用TAB键移回到编辑框中就总是不能移回了,它总是在DBGrid控件中的那些列和行中移动,光标始终移不出。请问各位高手这是怎么回事,还请帮忙解决。我想让它用TAB键移动时马上移到下一个控件中。谢谢。

解决方案 »

  1.   

    Procedure TForm1.DBGrid1KeyPress(Sender: TObject; Var Key: Char);
    Begin
      If Key = #9 Then
          perform(WM_NEXTDLGCTL, 0, 0);
    End;
      

  2.   

    Procedure TForm1.DBGrid1KeyPress(Sender: TObject; Var Key: Char);
    Begin
      控件名.setfocus;
    End;
      

  3.   

    Procedure TForm1.DBGrid1KeyPress(Sender: TObject; Var Key: Char);
    Begin
      If (Key = #9)
        and (DBGrid1.ColIndex=DBGrid1.Columns.Count-1) Then
      begin
          perform(WM_NEXTDLGCTL, 0, 0);
         或 DBEdit1.SetFocus;
      end;
    End;
      

  4.   

    Procedure TForm1.DBGrid1KeyPress(Sender: TObject; Var Key: Char);
    Begin
      控件名.setfocus;
    End;
    这样做的话,那我还想在DBGrid中选择了某一条记录后,打回车键就能做一些事情,那不能完成了吧。Procedure TForm1.DBGrid1KeyPress(Sender: TObject; Var Key: Char);
    Begin
      If Key = #9 Then
          perform(WM_NEXTDLGCTL, 0, 0);
    End;
    这样做的话,当我从编辑框按TAB键切换到DBGrid中时,DBGrid那永远也得不到焦点呀,那我怎样用上下键选择其中的某一条记录呢?
    哪位还有办法?谢谢。