使用多个监视器 c# 最大化无边界窗体

Maximizing borderless form with multiple monitors c#

我目前正在使用 Doubleclick 事件制作无边框表单以最大化表单。但我意识到该表格不会在其他两个屏幕上最大化,只有我的主要中间屏幕。 所以我的代码目前是:

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;
    }  
}

它可能看起来很奇怪,但我用它来不覆盖任务栏。 我需要这样的代码将它停靠在一边,并用它来计算表单的位置。看起来像这样:half right screen dock 当我单击这 9 个按钮中的一个时,它会将屏幕停靠在屏幕的不同位置。在角落,半个屏幕或中间。

我尝试使用代码让表单检测它在哪个屏幕上,然后再次使用它来最大化该屏幕上的表单,但是我得到了一堆红线,而且它在结束。

我有 3 个显示器。

请帮忙。

您将其硬编码到主屏幕,即带有任务栏的屏幕。为了让其他屏幕获取表单当前正在调整的屏幕。

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;
    }  
}