有没有办法让表单填充x%的屏幕?

时间:2012-01-29 09:55:28

标签: c# .net winforms

我想知道是否有办法在C#中调整表单的大小,而不是使用像素?例如,Form1填充屏幕宽度的75%和屏幕高度的80%?我已经尝试了一下阅读用户屏幕分辨率,然后从那里进行调整,但我正在寻找一种不同的方法。我想这样做以解决不同屏幕分辨率的问题,所以我不必使用滚动条。有没有办法做到这一点,还是我应该保留我的卷轴?

2 个答案:

答案 0 :(得分:2)

您希望使用加载事件,这样您就不会受到自动表单缩放的影响。像这样:

    protected override void OnLoad(EventArgs e) {
        var scr = Screen.FromPoint(this.Location);
        this.Size = new Size((int)(scr.WorkingArea.Width * 0.75),
                             (int)(scr.WorkingArea.Height * 0.80));
        this.Location = new Point((scr.WorkingArea.Width - this.Width) / 2,
                                  (scr.WorkingArea.Height - this.Height) / 2);
        base.OnLoad(e);
    }

答案 1 :(得分:1)

您可以使用以下方式获取屏幕分辨率:

Rectangle rect = Screen.AllScreens[0].Bounds;
//Maybe you need to use WorkingArea instead of Bounds.

从那里你可以使用你想要的80%。更多信息请访问:http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.aspx