【问题标题】:New form is not reporting its size as I expect新表格没有像我预期的那样报告它的大小
【发布时间】:2018-11-07 05:21:15
【问题描述】:

从覆盖窗口大小不正确的问题继续。 所以这里是最小系统:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Size = new Size(1920, 1080);
            MessageBox.Show("x:" + this.Size.Width + " y:" + this.Size.Height);
        }
    }
}

它说我的窗口大小是 1438x818(尽管它看起来确实填满了屏幕的桌面区域)....

做了一些新的研究 当我的尺寸设置为大于 14xx x 83x 时,问题开始出现 任何大于此的尺寸都将限制为 14xx x 83x 如果我说

this.size = new Size (500,500);

那就没事了……

[最终编辑] 好吧。我想我找到了问题所在。 https://social.msdn.microsoft.com/Forums/vstudio/en-US/60e3b413-7746-46d4-8351-0c7f4e38378f/does-form-size-has-any-limitation-like-maximum-width-or-maximum-height?forum=netfxbcl

表单大小确实有一个隐藏的限制,似乎修复它超出了我作为独立开发者的能力。我找不到隐藏的限制在哪里..

我需要做的是将表单中任何内容的逻辑坐标映射到基于 1436/1920 比例的新世界坐标。绕过问题。

【问题讨论】:

  • 你的屏幕分辨率是多少
  • 1920x1080................
  • 为什么不只是this.WindowState = FormWindowState.Maximized;
  • 这可能是一个隐藏的缩放属性问题。它覆盖了设备的屏幕,但消息框报告为 1431x774。我正在寻找规模的东西在哪里......
  • 如果您在一个全新的解决方案中创建一个全新的表单,并将该代码复制到该表单的Form_Load,它是否表现出相同的行为?跨度>

标签: c# forms winforms size


【解决方案1】:

如果你想将大小设置为1920x1080,你可以试试这个。

this.MinimumSize = new Size(1920, 1080);
this.MaximumSize = new Size(1920, 1080);

【讨论】:

  • 它覆盖了表单的任务栏和标题栏之间的屏幕区域..但是消息框仍然报告1416x756...
【解决方案2】:

表单的大小必须小于或等于当前屏幕大小。

此外,您还可以通过以下方式更改表单的 ClientSize

this.ClientSize = new System.Drawing.Size(1920, 1080);

【讨论】:

  • 某处可能有一个限制属性..但我找不到它。但我不知道为什么它发生在 14xx x 83x....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 2013-04-11
  • 1970-01-01
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多