在第二台显示器上运行VB.net应用程序

时间:2016-03-29 14:34:10

标签: vb.net winforms multiple-monitors

我是编码的新手,但我为我的工作计划做了简单的应用!!

我最近遇到了一个应用程序的“小”问题!

我构建了一个Windows窗体应用程序,具有多种形式,可在双屏幕CNC上运行。 CNC程序必须以更高的分辨率在主屏幕上运行。我的应用程序在1024; 768的触摸屏的第二个屏幕上运行。

问题本身就是如果我运行带有调试数据的代码,一切都按我的意愿运行,在第二个屏幕上打开应用程序,并在此屏幕上打开所有下一个表单。如果我使用已发布的数据安装它,所有表单都会在主监视器上打开,即使我在第二个屏幕上拖动它们也是如此。在我关闭它们之后,它们返回主要部分。

有没有办法可以在每个表单的开头放置一个代码行,使所有表单在辅助屏幕上打开。

当设置正常工作时,我会锁定屏幕设置,以确保没有人会弄乱设置。

请温柔地对待我,我对如何编码没有任何形式。我通过网络阅读来学习自己!

谢谢大家!!

2 个答案:

答案 0 :(得分:2)

这样的东西应该在找到的第一个非主屏幕上将窗口定位在偏移100,100处。您可以根据需要调整位置和/或尺寸。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim secondaryMonitor = Screen.AllScreens.FirstOrDefault(Function(x) Not x.Primary)
    If secondaryMonitor IsNot Nothing Then
        Dim newLocation = secondaryMonitor.Bounds.Location
        newLocation.Offset(100, 100) ' adjust as needed
        Me.Location = newLocation
        ' Also see Me.Size and Me.Bounds
    End If
End Sub

答案 1 :(得分:0)

这对我有用:

Private Sub _MainForm_Move(sender As Object, e As EventArgs) Handles MyBase.Move
         ' preserve  me.Location.x  and  me.Location.y  here.
End Sub

Then, at program boot, restore:       me.Location.x  and  me.Location.y