: 如题:以下是实现代码:
PostMessage(Frmsetdetail.Handle,WM_KEYDOWN,VK_TAB,0);
我想判断下一个tab所得到的焦点控件是否为Tedit,如果是
加入这句就是edit.SelectAll
可以实现嘛?如何判断?

解决方案 »

  1.   

    没有试过,不知道呀,
     你怎么不用,sendmessage()呢?
      

  2.   

    你为什么不在EDIT得到焦点的事件里面写代码
      

  3.   

    你为什么不在EDIT得到焦点的事件里面写代码
      

  4.   

    have a try
    GetActiveWindow
      

  5.   

    下面这段代码可以解决这样的问题,但是我又遇到了新问题,在我的form中如果有TComboBox,将会多跳一个控件,就是说以下的代码好像有局限性
    例如:我的窗口中有三个edit1,edit2,edit3,taborder分别为0,2,3,一个combobox1,taborder分别为1,如果我此时的焦点在combobox1上,那么我回车完后,焦点应该跑到edit2上,但是事与愿违,它直接跑道edit3上了,给位有过此经历嘛?
    procedure TFrmsetdetail.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
        begin
          PostMessage(Frmsetdetail.Handle,WM_KEYDOWN,VK_TAB,0);
          if Frmsetdetail.ActiveControl is TEdit then
            (Frmsetdetail.ActiveControl as TEdit).SelectAll
          else
            Exit;
        end;
    end;