调整大小后如何保持表单居中在屏幕中间

Posted

技术标签:

【中文标题】调整大小后如何保持表单居中在屏幕中间【英文标题】:How to keep form centered to the middle of the screen after resize 【发布时间】:2018-02-03 07:08:59 【问题描述】:

我有一个表格,它根据我在加载时按字体大小调整大小的屏幕位置居中。调整大小后,位置与调整大小之前保持一致,因此表单不再像我想要的那样位于中心。

让我给你画个草图:

我试过打电话

        this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
        this.ResumeLayout(false);
        this.PerformLayout();

再次调整大小后(我相信,这是在开始时居中表单的代码部分)。它没有用。我还发现了一些类似的问题: "Keeping winform control centered after window resize " 但他们总是只处理控件的居中,而不是表单本身。

【问题讨论】:

【参考方案1】:

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;

【讨论】:

以上是关于调整大小后如何保持表单居中在屏幕中间的主要内容,如果未能解决你的问题,请参考以下文章

在 FabricJS 中调整窗口大小时如何始终将剪切区域居中?

将具有子元素(包含 imgs/iframes)的元素绝对居中,同时在调整大小时保持它们的纵横比

调整浏览器大小时,如何使部分中的对象保持居中?

在输入文本时保持居中的同时动态调整 UITextField 大小的正确方法是啥?

如何让圆圈保持圆圈并在不同的屏幕尺寸上调整大小?

iOS:使用自动布局保持视图彼此按比例调整大小