VB.NET在不同的监视器上显示所有窗体

VB.NET在不同的监视器上显示所有窗体,vb.net,Vb.net,我正在尝试将我的3个窗体添加到3个监视器中,但我似乎无法显示其他2个窗体,我只能在第二个监视器上显示窗体1。这是我代码中的错误语法吗 Dim numberofmonitors As Integer = Screen.AllScreens.Length If numberofmonitors > 1 Then Me.Bounds = Screen.AllScreens(1).Bounds ElseIf numberofmonitor

我正在尝试将我的3个窗体添加到3个监视器中,但我似乎无法显示其他2个窗体,我只能在第二个监视器上显示窗体1。这是我代码中的错误语法吗

  Dim numberofmonitors As Integer = Screen.AllScreens.Length
        If numberofmonitors > 1 Then
            Me.Bounds = Screen.AllScreens(1).Bounds
        ElseIf numberofmonitors > 2 Then
            Me.Bounds = Screen.AllScreens(1).Bounds
            Form2.Bounds = Screen.AllScreens(2).Bounds
            Form2.Show()
        ElseIf numberofmonitors > 3 Then
            Me.Bounds = Screen.AllScreens(1).Bounds
            Form2.Bounds = Screen.AllScreens(2).Bounds
            Form2.Show()
            Form3.Bounds = Screen.AllScreens(3).Bounds
            Form3.Show()
        End If
我也尝试这个命令

  Dim myScreens() As Screen = Screen.AllScreens
        If (myScreens.Length = 3) Then

            'Position form 1 in the middle of screen 1
            Me.Left = myScreens(0).WorkingArea.Width / 2 - Me.Width / 2
            Me.Top = myScreens(0).WorkingArea.Height / 2 - Me.Height / 2

            'Position the top left corner of form 2 in the middle of screen 2
            Dim myForm2 As New Form2
            myForm2.Show()
            myForm2.Left = myScreens(0).Bounds.Width + myScreens(1).WorkingArea.Width / 2
            myForm2.Top = myScreens(1).WorkingArea.Height / 2

            Dim myForm3 As New Form2
            myForm3.Show()
            myForm3.Left = myScreens(0).Bounds.Width + myScreens(2).WorkingArea.Width / 3
            myForm3.Top = myScreens(2).WorkingArea.Height / 3
        End If
但是问题是,这个命令是Form3没有显示到我的第一个监视器/左侧监视器,但是主窗体显示到我的中间监视器,Form2显示到我的右侧监视器

Me.Bounds = Screen.AllScreens(0).Bounds
Me.StartPosition = FormStartPosition.Manual
Form2.Bounds = Screen.AllScreens(1).Bounds
Form2.Show()
Form2.StartPosition = FormStartPosition.Manual
Form3.Bounds = Screen.AllScreens(2).Bounds
Form3.StartPosition = FormStartPosition.Manual
Form3.Show()

所以我做了这个命令,有人帮我重新编辑谢谢大家看着你的第一个狙击手,也许会改变你陈述的顺序。例如,由于3大于1,可能所有大于1的都满足第一个标准,并且没有机会大于2或大于3@Hursey它现在显示,但form2和form3显示在同一个监视器上(中间监视器)