C# 调整大小后如何使窗体居中于屏幕中间

C# 调整大小后如何使窗体居中于屏幕中间,c#,forms,winforms,centering,C#,Forms,Winforms,Centering,我有一个表单,它根据屏幕位置居中,加载时按fontsize调整大小。调整大小后,位置与调整大小前保持不变,因此窗体不再像我所希望的那样位于中心 让我给你画个草图: 我试过打电话 this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.ResumeLayout(false); this.PerformLayout(); 再次调整大小后(我相信,这

我有一个表单,它根据屏幕位置居中,加载时按fontsize调整大小。调整大小后,位置与调整大小前保持不变,因此窗体不再像我所希望的那样位于中心

让我给你画个草图:

我试过打电话

        this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
        this.ResumeLayout(false);
        this.PerformLayout();
再次调整大小后(我相信,这是代码的一部分,在开始时将表单居中)。它不起作用。我还发现了一些类似的问题,如:
但是它们总是只处理控件的居中,而不是窗体本身。

ResizeEnd
事件添加方法。在方法中,当触发
ResizeEnd
时,获取当前屏幕大小(在多个监视器上,包含当前表单的屏幕),然后计算表单的位置。看看这个例子

private void Form1_ResizeEnd(object sender, EventArgs e)
{
    Screen myScreen = Screen.FromControl(this);
    Rectangle area = myScreen.WorkingArea;

    this.Top = (area.Height - this.Height) / 2;
    this.Left = (area.Width - this.Width) / 2;
}