如何使Windows窗体适合任何屏幕分辨率?

我使用C#开发VS 2008。 以下代码对我无效。 我的表单采用1024 x 768分辨率设计。

我们的客户笔记本电脑的分辨率为1366 x 768。 为了解决这个问题,我在Form Load事件中设置了下面的代码:

this.Location = new Point(0, 0);
this.Size = Screen.PrimaryScreen.WorkingArea.Size;

但窗体不会根据屏幕分辨率调整大小,并且表单的底部会隐藏或剪切,或者我错过了滚动条。

有什么办法可以解决这个问题吗? 请给我看看语法。 提前致谢


你不能开始最大化?

System.Windows.Forms.Form.WindowState属性设置为FormWindowState.Maximized


如果要以编程方式设置窗体大小,请将窗体的StartPosition属性设置为“ Manual 。 否则,表单自己的定位和尺寸算法会干扰你的。 这就是为什么你遇到你的问题中提到的问题。

示例:以下是我如何将表单大小调整为原始大小和屏幕工作区域大小之间的一半大小。 我还将表格放在工作区域中:

public MainView()
{
    InitializeComponent();

    // StartPosition was set to FormStartPosition.Manual in the properties window.
    Rectangle screen = Screen.PrimaryScreen.WorkingArea;
    int w = Width >= screen.Width ? screen.Width : (screen.Width + Width) / 2;
    int h = Height >= screen.Height ? screen.Height : (screen.Height + Height) / 2;
    this.Location = new Point((screen.Width - w) / 2, (screen.Height - h) / 2);
    this.Size = new Size(w, h);
}

请注意,将WindowState单独设置为FormWindowState.Maximized不会更改已还原窗口的大小。 因此,只要窗口最大化,窗口看起来可能很好,但在恢复时窗口大小和位置仍然可能是错误的。 所以我建议设置大小和位置,即使您打算最大化打开窗口。


可能是最大化的表单帮助,或者您可以在表单加载时手动执行此操作:

代码块

this.Location = new Point(0, 0);

this.Size = Screen.PrimaryScreen.WorkingArea.Size;

然后,玩锚点,以便表单内的子控件自动适应表单的新大小。

希望这可以帮助,

链接地址: http://www.djcxy.com/p/36841.html

上一篇: How to fit Windows Form to any screen resolution?

下一篇: Changing Resolution in OpenTK