Дисплей 2 формы, бок о бок - PullRequest
1 голос
/ 11 августа 2010

Я бы хотел отобразить 2 формы рядом.Frm1 будет вызывать Frm2.Проблема в том, что если Frm1 находится слишком близко к краю экрана компьютера, когда отображается Fr2, его часть будет за пределами экрана.сторона экрана, то Frm2 будет отображаться на левой стороне Frm1 и наоборот?Спасибо

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Предполагая WinForms, вы можете сравнить form.Bounds с Screen.FromControl(form).WorkingArea.

Например:

var screen = Screen.FromControl(form);
if (form.Right < screen.Left + Screen.Width / 2)
    otherForm.Left = screen.Left + Screen.Width / 2;
else
    otherForm.Left = 0;
0 голосов
/ 11 августа 2010

наконец-то все заработало, вот решение:

 Public Class Form1
    Public IsFormLeft As Boolean
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim frm1ScreenArea = Screen.FromControl(Me).WorkingArea

        If Me.Right < frm1ScreenArea.Left + frm1ScreenArea.Width / 2 Then
            IsFormLeft = True 'Form1 in Left area
        Else
            IsFormLeft = False 'Form1 in Right area
        End If
        Form2.ShowDialog()
    End Sub
End Class


Public Class Form2
       Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If Form1.IsFormLeft Then
            Me.Left = Form1.Left + Form1.Width
            Me.Top = Form1.Top
        Else
            Me.Left = Form1.Right - Form1.Width * 2
            Me.Top = Form1.Top
        End If
    End Sub
End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...