以与主窗体相同的显示器显示所有窗体

时间:2014-01-09 05:44:06

标签: vb.net multiple-monitors

在我的应用程序中,当点击某些按钮时,我会在主窗体的顶部弹出(模态)多种形式。

当我在Monitor 1上运行我的应用程序时,这可以正常工作,因为我预设了表单的位置。但是,如果用户将主窗体移动到监视器2并单击这些按钮,则所有弹出窗体仍显示在监视器1上。

我发现此代码将表单推送到第二个监视器:

Form2.Location=Screen.AllScreens(UBound(Screen.AllScreens)).Bounds.Location + New Point(100,100)
Form2.Show()

但是,有没有办法可以检测Monitor my Main Form的位置,然后将任何请求的表单推送到同一台显示器上?

我还使用3台监视器,因此我需要将所有表单显示在与主应用程序相同的监视器上。

由于

1 个答案:

答案 0 :(得分:0)

通过这种方式,您必须引用其他表单,或者使用OpenForms命名空间上的Application属性并迭代它们。

Private Sub form_Move(sender As Object, e As EventArgs) Handles Me.Move
  frm2.Location = New Point(Me.Location.X + 200, Me.Location.Y + 200)
  ' move others
End Sub