我做了一个小程序,是个压缩文件。
   www.anyang.gov.cn/wfq/cursor1.rar
窗口中有三个edit框,我在edit1的onexit中写了以下代码:
 procedure TForm1.Edit1Exit(Sender: TObject);
 var
  tt:integer;
  begin
   tt:=application.MessageBox('ffff','ff',mb_yesno);
   If tt=6 then
    edit3.SetFocus
   else 
    eidt2.setfocus;
  end;  我用鼠标点击edit2,光标离开edit1,然后在弹出窗口中点"否",则应该是edit2成为输入焦点。但我发现光标确实停留在了edit2中,但是无法进行输入,再用鼠标点击一下edit2才能正常进行输入,这是为什么呀?该如何使edit2成为真实的输入焦点呢?

解决方案 »

  1.   

    我刚才试了一下,怎么没有光标已在edit但不能输入的情况呀,奇怪呀!!!
      

  2.   

    你把鼠标点在一个Edit框中(左键一直按着)
    试一下键盘可以输入数据么?问题就在这里了,
    Edit没有收到你鼠标弹起的消息
      

  3.   

    以下代码
       If tt=6 then
        edit3.SetFocus
       else 
        eidt2.setfocus;执行时焦点还在MessageBox中,因其还没有Destroy。
      

  4.   

    其实应该是可以输入东西的!因为我也曾经出现过类似的情况啊!呵呵!我觉得还是不要在onexit里面设置XX.setfocues了!如果在有showmessage那样的对话框更要少用啊呵呵!
      

  5.   

    有这种是,关注ing!帮你顶一下!