【问题标题】:Center C# form on secondary screen在辅助屏幕上居中 C# 窗体
【发布时间】:2018-05-22 03:25:18
【问题描述】:

快速提问,希望可以轻松解决。 我对 C# 有点陌生,并试图在第二个表单打开时将其居中显示在辅助屏幕上。到目前为止,我可以让它在第二个屏幕上打开没问题,但它位于左上角,我无法让它居中。我知道Location = Screen.AllScreens[1].WorkingArea.Location; 将把它放在所述工作区的左上角。我想知道是否有办法(基本上)将.Location 更改为其他无论实际屏幕尺寸如何都可以居中的东西?这将适用于具有不同屏幕尺寸的多个不同系统。 这是我到目前为止的代码。

在第一个表单上。

public partial class FrmPrompt : Form
{
    public FrmPrompt()
    {
        InitializeComponent();
    }

    private void ButNo_Click(object sender, EventArgs e)
    {
        frmConfirm confirm = new frmConfirm();
        Screen[] screens = Screen.AllScreens;
        lblConfirmMsg.Text = "Please Wait For Customer To Confirm...";
        butContinue.Hide();
        confirm.Show();
    }
}

关于第二种形式:

public partial class frmConfirm : Form
{
    public frmConfirm()
    {
        InitializeComponent();
        Location = Screen.AllScreens[1].WorkingArea.Location;
    }

    private void pictureBox1_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }
}

谢谢!

【问题讨论】:

  • Form.CenterToScreen() 没有做你想做的事吗?
  • 如果你阅读那里写的内容,你会看到不要直接从你的代码中调用它备注

标签: c# forms location center screens


【解决方案1】:

CenterScreen 将在 当前 屏幕上找到表单,因此,如果您的 FrmPrompt 在第二个屏幕上,当您单击 ButNo 时 - 这将起作用。但我认为这不是你要求的。

除此之外,CenterScreen 将覆盖您在 显示方法调用之前设置的 from Location 的任何位置设置。所以我建议重写frmConfirm的OnShown方法

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    var area = Screen.AllScreens[1].WorkingArea;
    var location = area.Location;

    location.Offset((area.Width - Width) / 2, (area.Height - Height) / 2);
    Location = location;
}

【讨论】:

  • 谢谢!多年来一直在寻找这个。很好的帮助!
【解决方案2】:

在第一个表单上试试这个,不需要在第二个表单中设置任何东西。

        //put it after this line: frmConfirm confirm = new frmConfirm();
        confirm.StartPosition = FormStartPosition.CenterScreen;

【讨论】:

  • 如果您将StartPosition 设置为CenterScreen,则Location 将在显示方法调用时被覆盖
  • 这只是将第二个表单居中显示在主显示屏上。我需要它在辅助显示器上居中。
猜你喜欢
  • 2019-08-13
  • 1970-01-01
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 2011-06-03
相关资源
最近更新 更多