【问题标题】:Showing All Forms On Same Monitor As Main Form在与主窗体相同的监视器上显示所有窗体
【发布时间】:2014-01-27 13:03:26
【问题描述】:

在我的应用程序中,当单击某些按钮时,我会在主表单顶部(模态)弹出许多表单。

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

我发现这段代码可以将表单推送到第二个监视器上:

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

但是,有没有一种方法可以检测我的主窗体所在的监视器,然后将任何请求的表单推送到同一个监视器上?

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

谢谢

【问题讨论】:

  • 您可以使用Move 事件并相对于主表单移动所有表单。
  • 啊,谢谢,这听起来是个不错的计划。您是否有示例说明如何使我的表单相对于主表单保持不变?

标签: vb.net multiple-monitors


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多