在运行时更改表单位置,更改屏幕编号

时间:2018-06-27 18:51:33

标签: c#

从辅助屏幕上的主屏幕更改后,我试图将表单位置更改为居中

private void Form2_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Space)
        {

             ff = !ff;
             if(ff)
                 showOnScreen(1,this);
             else
                 showOnScreen(0,this); 
        }
    }



void showOnScreen(int screenNumber,Form frm)
    {
        Screen[] screens = Screen.AllScreens;

        if (screenNumber >= 0 && screenNumber < screens.Length)
        {

            Location = screens[screenNumber].WorkingArea.Location;
            this.Location = new Point((screens[screenNumber].Bounds.Size.Width / 2) - (this.Size.Width / 2), (screens[screenNumber].Bounds.Size.Height / 2) - (this.Size.Height / 2));


        }
    }

表格在屏幕中央移动,但仅在我的主屏幕上移动

1 个答案:

答案 0 :(得分:0)

您需要设置StartPosition格式的手册,才能在Location属性中设置开始位置值。

public Form1()
{
    InitializeComponent();
    this.StartPosition = FormStartPosition.Manual;
    this.Location = new Point(0, 0);
}

也请从这里取Reference并检查我的另一个Reference

现在 尝试在showOnScreen方法中将WindowStartUpLocation参数设置为“ manual”。