在不同分辨率的辅助屏幕上最大化表格?

问题描述

我正在开发一个简单的Windows应用程序(使用C#),并且希望它显示在第二个监视器中最大化的窗体。为此,我在表单的“ Load”事件上执行以下操作:

private void FormTest_Load(object sender,EventArgs e)
    {
        Screen[] screens = Screen.AllScreens;
        this.WindowState = FormWindowState.Normal;
        this.Location = screens[1].WorkingArea.Location;
        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        this.WindowState = FormWindowState.Maximized;                    
    }

我遇到的问题是,当我执行此操作时,表单仅占据了屏幕的一部分。我的主屏幕的分辨率为1024x768,我的辅助屏幕的分辨率为1920x1080,看来表格的大小与我的辅助屏幕的大小相同。

此外,我还有一个按钮,该按钮运行以下代码以最大化屏幕或将其恢复为正常:

private void ChangeSize() {
    if (this.WindowState == System.Windows.Forms.FormWindowState.Maximized)
    {
        this.WindowState = System.Windows.Forms.FormWindowState.Normal;
        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
    }
    else
    {
        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
    }
}

当我两次单击按钮时(首先是使表单最小化,然后再次使其最大化),该表单确实覆盖了整个辅助屏幕,但是如果我尝试只在代码中运行该函数两次(对于为了进行测试),在“ FormTest_Load”中的代码之后,屏幕仍然无法正确覆盖整个屏幕。

我可能在这里犯了一个noob错误,但是我为此苦了一段时间,因此,如果有人可以阐明我的代码有什么问题,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)