1

关闭第二个表单后,我无法将焦点重新回到主表单。

当我这样做时:(来自主窗体)“Form1Main”:

..
Form2Output.Show;
..

从“Form2Output”:

if (bNoWarnings = False) AND (Pos('-b',sExeOptions)=0)  then
begin
  if Application.MessageBox(PChar('Execute command line?'+ #13#10#13#10 + P.CommandLine), 'Execute?', MB_ICONQUESTION + MB_YESNO) = IDNO then Exit;
end;

它会出现消息对话框从主窗体“窃取”焦点(关闭 Form2Output 时,Form1Main 进入后台)。如果我不显示 MessageDlg(不满足条件),则在关闭 Form2Output 时主窗体“重新聚焦”就好了。我对拉撒路比较陌生,任何帮助都会很棒..

4

1 回答 1

2

输入第二种Application.MainForm.BringToFront;形式OnClose。这种行为不是 Object Pascal 造成的,它是 LCL 的 TApplication 设计的一个特点。

于 2011-08-24T20:20:39.793 回答