-1

現在、Doubleclick イベントを使用してフォームを最大化するボーダレス フォームを作成しています。しかし、他の 2 つの画面ではフォームが最大化されず、メインの中央だけであることに気付きました。だから私のコードは現在:

private void Form1_DoubleClick(object sender, EventArgs e)
{
    if ((this.Height == Screen.PrimaryScreen.WorkingArea.Height) && (this.Width == Screen.PrimaryScreen.WorkingArea.Width))
    {
        this.Width = 534;
        this.Height = 600;
        CenterToScreen();
    }
    else
    {
        this.Height = Screen.PrimaryScreen.WorkingArea.Height;
        this.Width = Screen.PrimaryScreen.WorkingArea.Width;
        this.Location = Screen.PrimaryScreen.WorkingArea.Location;
    }  
}

奇妙に見えるかもしれませんが、タスクバーを覆わないように使用しています。このようなコードを横にドッキングし、それを使用してフォームの位置を計算する必要があります。次のように表示されます: これらの 9 つのボタンのいずれかをクリックすると、画面の半分がドッキングされ、画面のさまざまな場所に画面がドッキングされます。隅、画面の半分、または中央。

フォームがどの画面にあるかを検出するコードを使用し、それを使用してその画面でフォームを最大化しようとしましたが、赤い線がたくさん表示され、最終的には機能しませんでした。

3台のモニターを持っています。

助けてください。

4

1 に答える 1

0

タスクバーのある画面であるプライマリ画面にハードコーディングしました。他の画面を許可するには、現在フォームがそれに合わせて調整されている画面を取得します。

private void Form1_DoubleClick(object sender, EventArgs e)
{
    if ((this.Height == Screen.FromControl(this).WorkingArea.Height) && (this.Width == Screen.FromControl(this).WorkingArea.Width))
    {
        this.Width = 534;
        this.Height = 600;
        CenterToScreen();
    }
    else
    {
        this.Height = Screen.FromControl(this).WorkingArea.Height;
        this.Width = Screen.FromControl(this).WorkingArea.Width;
        this.Location = Screen.FromControl(this).WorkingArea.Location;
    }  
}
于 2016-07-24T04:57:23.503 に答える