c# - 调整大小后如何使表单居中于屏幕中间

标签 c# forms winforms centering

我有一个根据屏幕位置居中的表单,我在加载时通​​过 fontsize 调整大小。调整大小之后,位置与调整大小之前保持不变,因此表单不再位于中心,就像我希望的那样。

让我给你画个草图: enter image description here

我试过打电话

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

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

最佳答案

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

关于c# - 调整大小后如何使表单居中于屏幕中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45877908/

相关文章:

c# - ValueTuple.Equals 不返回 true

html - 是否可以设置已保存输入字段数据的下拉菜单的样式

c# - ListBox 中的多个条目合并

c# - 根据登录凭证隐藏/显示菜单项

c# - 如何使用 C# 将文本框值更新为绑定(bind)源?

c# - 将枚举属性数据绑定(bind)到网格并显示描述

c# - 带有字符串键的字典出现 KeyNotFoundException

c# - 以编程方式将权限分配给注册表子项

c# - 尝试从 Windows 服务读取 IIS 站点的 web.config 文件

ruby-on-rails - 简单_形式: simple_fields_for not showing the form