4

我有一个包含多个获胜表格的应用程序。我注意到,如果用户有多个屏幕显示并将应用程序更改为一个屏幕,则由其他按钮调用的其他表单将在主显示中打开,而不是我的主应用程序或表单所在的位置。

我怎样才能改变这个?

4

1 回答 1

4

您可以Form.CenterToParent在您的表单上使用该方法,然后它们将以您创建的表单为中心打开,或者您可以使用屏幕类来获取您的主应用程序正在运行的显示边界,然后将其传递给您创建的表单.

编辑:

重新考虑分配Owner可能就足够了,但我此时没有启动双显示器计算机进行测试

Dim frm As Form1 = New Form1()
frm.Owner = Me
frm.CenterToParent()
frm.Show()

编辑

刚好有机会去看看。就像我认为将 分配Owner给新的Form或使用将在与原始的相同屏幕上Form.Show(IWin32Window)打开新的一样。FormForm

frm.Show(Me)


看起来该CenterToParent物业现在受到保护。根据 MSDN 链接

不要直接从您的代码中调用 CenterToParent 方法。相反,将 StartPosition 属性设置为 CenterParent。如果表单或对话框是顶级的,则 CenterToParent 将表单相对于屏幕或桌面居中

于 2013-08-05T04:00:03.600 回答