在同一个屏幕上打开winforms

时间:2013-08-05 03:24:32

标签: vb.net

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

我该如何更改?

1 个答案:

答案 0 :(得分:3)

您可以在表单上使用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将表单相对于屏幕或桌面居中