Delphi 2010表格显示在"错误"的监视器上

Rod*_*ddy 7 delphi multiple-monitors delphi-2010

我有一个简单的测试应用程序,一个空表单,另一个包含TButton.按钮脚本是这样的: -

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show();
end;
Run Code Online (Sandbox Code Playgroud)

Form2在启动时自动创建.根本没有其他代码.

当我运行应用程序时,我可以按下按钮然后Form2出现.我可以Form2在主监视器上重新定位/调整大小,然后关闭它.如果我Form1再次按下按钮,Form2则会正确地重新出现在最后一个位置.到目前为止都很好......

但是,如果我Form2放在辅助显示器上,关闭它,然后按下按钮,然后再Form2显示在主监视器上!

我希望表单重新出现在它最后的监视器上 - 我怎么能得到这种行为?

Rod*_*ddy 11

这是因为表单DefaultMonitor属性的默认值是dmActiveForm.

将Form2设置DefaultMonitordmDesktop,问题得到解决.