为了账号安全,请及时绑定邮箱和手机立即绑定

在辅助监视器上显示Windows窗体?

/ 猿问

在辅助监视器上显示Windows窗体?

C#
慕容3067478 2019-11-15 12:32:11

我正在尝试在辅助监视器上设置Windows窗体,如下所示:


private void button1_Click(object sender, EventArgs e)

{

    MatrixView n = new MatrixView();

    Screen[] screens = Screen.AllScreens;

    setFormLocation(n, screens[1]);

    n.Show();

}


private void setFormLocation(Form form, Screen screen)

{

    // first method

    Rectangle bounds = screen.Bounds;

    form.SetBounds(bounds.X, bounds.Y, bounds.Width, bounds.Height);


    // second method

    //Point location = screen.Bounds.Location;

    //Size size = screen.Bounds.Size;


    //form.Left = location.X;

    //form.Top = location.Y;

    //form.Width = size.Width;

    //form.Height = size.Height;

}

边界的属性似乎是正确的,但是在我尝试过的两种方法中,这都会最大化主监视器上的形式。有任何想法吗?


查看完整描述

4 回答

?
翻过高山走不出你

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


查看完整回答
反对 回复 2019-11-15
?
呼啦一阵风

this.Location = Screen.AllScreens[1].WorkingArea.Location;

这是表单参考。


查看完整回答
反对 回复 2019-11-15
?
慕莱坞5435954

效果很好。如果窗口最大化,则不会移动窗口。此代码段解决了这一问题(尽管我怀疑窗口的“正常”尺寸必须小于新的屏幕尺寸才能正常工作):


    void showOnScreen(int screenNumber)

    {

        Screen[] screens = Screen.AllScreens;


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

        {

            bool maximised = false;

            if (WindowState == FormWindowState.Maximized)

            {

                WindowState = FormWindowState.Normal;

                maximised = true;

            }

            Location = screens[screenNumber].WorkingArea.Location;

            if (maximised)

            {

                WindowState = FormWindowState.Maximized;

            }

        }

    }


查看完整回答
反对 回复 2019-11-15
?
幕布斯6054654

您确定screens[1]是中学吗?给screens[0]一试。您的代码基本上是正确的。


好的,我检查了一下,您将必须在Show()之后执行此操作:


n.Show();

setFormLocation(n, screens[1]);

这会产生一些不必要的闪烁。但是您可以这样做:


n.SetBounds(-100, -100, 10, 10);  // or similar

n.Show();

setFormLocation(n, screens[1]);


查看完整回答
反对 回复 2019-11-15

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信