我有一个包含多个获胜表格的应用程序。我注意到,如果用户有多个屏幕显示并将应用程序更改为一个屏幕,则由其他按钮调用的其他表单将在主显示中打开,而不是我的主应用程序或表单所在的位置。
我怎样才能改变这个?
我有一个包含多个获胜表格的应用程序。我注意到,如果用户有多个屏幕显示并将应用程序更改为一个屏幕,则由其他按钮调用的其他表单将在主显示中打开,而不是我的主应用程序或表单所在的位置。
我怎样才能改变这个?
您可以Form.CenterToParent
在您的表单上使用该方法,然后它们将以您创建的表单为中心打开,或者您可以使用屏幕类来获取您的主应用程序正在运行的显示边界,然后将其传递给您创建的表单.
编辑:
重新考虑分配Owner
可能就足够了,但我此时没有启动双显示器计算机进行测试
Dim frm As Form1 = New Form1()
frm.Owner = Me
frm.CenterToParent()
frm.Show()
编辑
刚好有机会去看看。就像我认为将 分配Owner
给新的Form
或使用将在与原始的相同屏幕上Form.Show(IWin32Window)
打开新的一样。Form
Form
frm.Show(Me)
看起来该CenterToParent
物业现在受到保护。根据 MSDN 链接
不要直接从您的代码中调用 CenterToParent 方法。相反,将 StartPosition 属性设置为 CenterParent。如果表单或对话框是顶级的,则 CenterToParent 将表单相对于屏幕或桌面居中