Visual Studio 设计器中表单的大小是否受限于屏幕分辨率?

2024-02-02

为什么在 Visual Studio WinForms 设计器中我无法将窗体的大小增加到高于我当前正在使用的屏幕的分辨率?我认为应该有可能在较低分辨率的系统上开发一个针对更高分辨率的应用程序。事实上,这会在调试期间剪辑表单,这应该不是问题。 Visual Studio 中是否有一些我似乎找不到的设置?

编辑: 我的主要问题是我需要能够在具有(例如)1360x768 屏幕的笔记本电脑上设计(例如)1440x900 大小的表单。


不幸的是(我希望其他人能发布更好的解决方案!),我知道的唯一解决方法是在表单中放置一个面板。

Set the Autoscroll and AutoSize父窗体的属性为 true。然后将面板尺寸增加到所需的尺寸。表单本身仍然不会大于您的屏幕分辨率,但它会显示滚动条,因此至少您可以使用设计器将超出尺寸限制的控件等放置到更大的面板上。

然后,您可能需要添加一些代码来在运行时调整表单大小,以便它足够大以显示没有滚动条的面板(并且可能还禁用自动滚动属性)。

我知道,这不是一个特别好的解决方法......

EDIT:

看起来这是有意而为之的:

MSDN https://connect.microsoft.com/VisualStudio/feedback/details/350887/windows-form-clipped-at-run-time-to-screen-resolution

财产表.尺寸: 该属性的最大值受到以下限制 运行表单的屏幕的分辨率。该值不能 每个屏幕尺寸大于 12 像素(水平 + 12 和垂直+ 12)。

再次在Microsoft Connect/公共错误跟踪 https://connect.microsoft.com/VisualStudio/feedback/details/350887/windows-form-clipped-at-run-time-to-screen-resolution:

Microsoft 发布于 2008 年 10 月 9 日 12:18

感谢您的反馈意见 在 .NET 框架上!

您所报告的问题实际上是设计使然。

在 MSDN 中http://msdn.microsoft.com/en-us/library/25w4thew.aspx http://msdn.microsoft.com/en-us/library/25w4thew.aspx, 你 可以在主题 Form.Size 属性中找到以下信息:

该属性的最大值受到分辨率的限制 运行表单的屏幕。该值不能大于12 每个屏幕尺寸上的像素(水平 + 12 和垂直 + 12)。

因此,我们不能无限地扩大我们的形式。这种行为是 与其他软件一致,例如记事本和 Microsoft Paint。

此行为在 Form.SetBoundsCore(...) 中定义 下面的代码:

最大尺寸 = SystemInformation.MaxWindowTrackSize;

if (高度 > 最大高度) {

height = max.Height; }

if (宽度 > 最大宽度) {

width = max.Width; }

[...]

谢谢 UIFx 团队

EDIT2:

由于检查是硬编码在 Forms.SetBoundsCore 中(使用 ILSpy 作为反编译器):

if (this.WindowState == FormWindowState.Normal && (base.Height != height || base.Width != width))
    {
        Size maxWindowTrackSize = SystemInformation.MaxWindowTrackSize;
        if (height > maxWindowTrackSize.Height)
        {
            height = maxWindowTrackSize.Height;
        }
        if (width > maxWindowTrackSize.Width)
        {
            width = maxWindowTrackSize.Width;
        }
    }

并且 SetBoundsCore 是一个受保护的函数,也许您可​​以尝试从 Windows.Forms.Form 派生一个类,覆盖 SetBoundsCore 并且不在您的 SetBoundsCore 版本中强制执行此检查?我还没有尝试过是否有效...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 设计器中表单的大小是否受限于屏幕分辨率? 的相关文章

  • 与 Visual Studio 2010 的静态 libpng 链接

    我正在尝试向我的应用程序添加 PNG 支持 因此我想包含 libpng 我知道它需要 zlib 因此我也下载了它 我进入 png 文件夹 projects vstudio 然后打开解决方案 我编译了它 一切顺利 我将其中的一些标头添加到我的
  • C# 中的序列化和对象版本控制

    如果我想序列化一个对象 我必须使用 Serializable 属性和所有成员变量将被写入该文件 我不知道如何进行版本控制 例如如果我添加一个新的成员变量 重命名变量或仅删除变量 然后打开 反序列化 文件 如何确定对象 文件版本 以便我可以正
  • 为什么在其他函数内部声明的函数不参与参数相关查找?

    考虑一个简单的例子 template
  • “char *”类型的参数与“LPWSTR”类型的参数不兼容

    以前可能有人问过这个问题 但我似乎找不到解决方案 std string GetPath char buffer MAX PATH GetSystemDirectory buffer MAX PATH strcat buffer versio
  • 如何在 RestSharp 中使用 PUT?

    我想使用 PUT 但我只能找到如何使用 POST 的示例 我要发送的json数据是使用这个cURL命令发送的curl i H Content Type application json X PUT d status 1 http 192 1
  • C# P2P聊天应用程序设计

    我想创建一个不使用显式服务器的简单聊天应用程序 主要要求是用户可以同时与许多朋友聊天 就像在 Skype 等上一样 我在这里指的不是会议聊天 而是多个单独的聊天窗口 目前 我只想要一个 LAN 消息应用程序 但如果设计能够轻松扩展到 Int
  • 如何在configure.in中测试C++库的可用性?

    我正在 GNU Linux 上开发一个 C 项目 并且正在寻找一种方法来使用 Autotools 测试 IBM Informix 库的存在性和可用性 即编辑configure in 我没有使用 Autotools 的经验 所以基本上我是从该
  • C语言中的积分提升和平衡有什么区别?

    积分提升和平衡有什么区别 我们是否可以总结这两条规则 即在执行任何操作 逻辑运算符 除外 之前 任何类型都至少转换为 int 或 unsigned int 类型 如果任何操作数的类型为更大 则转换为更大的类型比整数 积分促销 是旧的C90术
  • 如何doxygen注释Qt属性?

    我想将 Doxygen 注释附加到我的 Q PROPERTY 例如 song h class Song public QObject Q OBJECT private Q PROPERTY QString title READ title
  • Facebook C# SDK 从 V5 迁移到 V6

    我正在尝试从 SDK 的 V5 3 2 迁移到 V6 我有一个 ASP NET 4 0 Canvas 应用程序 我注意到现在不再有 facebook web dll 我以前使用过 并找到了以下信息 gt 删除 Facebook Web dl
  • 关于使用 Botframework v4 更改为新 LUIS 密钥的问题

    我在 Azure 中下载了 C 模板 它会自动创建并设置 LUIS 应用程序 但现在 LUIS 达到 1000 次调用并且现已过期 我使用创建了一个新密钥本指南 https learn microsoft com en us azure c
  • 用户注销速度非常快

    我正在使用 ASP NET 身份成员身份 这是 Startup Auth cs 代码 app CreatePerOwinContext EFDbContext Create app CreatePerOwinContext
  • cudaMalloc使用向量>进行管理 > C++ - NVIDIA CUDA

    我正在通过 NVIDIA GeForce GT 650M GPU 为我创建的模拟实现多线程 为了确保一切正常工作 我创建了一些辅助代码来测试一切是否正常 在某一时刻 我需要更新变量向量 它们都可以单独更新 这是它的要点 device int
  • 从用户控件访问父控件 - C#

    如何访问C winform 中用户控件的父控件 我使用以下代码 但它并不适用于所有类型的控件 例如 ListBox Control Co this TopLevelControl Controls Find label7 true Co 0
  • 将 CollectionBase 转换为 List 或可用于 Linq 的数据类型

    我正在使用 Aspose 单元格来操作 Excel 电子表格 API 中的类型之一是电子表格中的图片集合 它派生自 CollectionBase 请参阅此链接 http www aspose com documentation net co
  • static_assert 有什么作用,你会用它做什么?

    你能举个例子吗static assert C 11 会优雅地解决手头的问题吗 我熟悉运行时assert 我应该选择什么时候static assert 超过常规assert 另外 在boost有一种东西叫做BOOST STATIC ASSER
  • 使用boost asio的线程池

    我正在尝试使用 boost asio 创建一个有限的线程池类 但我陷入了困境 有人可以帮助我吗 唯一的问题是我应该减少计数器的地方 代码无法按预期工作 问题是我不知道我的线程何时完成执行以及我如何知道它已返回池 include
  • C# 以非管理员权限运行进程

    我启动了一个有关管理员权限的流程 psi Verb runas process StartInfo psi process Start 但现在这个过程必须启动另一个应用程序 但需要非管理员权限 应用程序适用于非管理员权限 我怎样才能做到这一
  • 当我想要发布项目时:“指定的路径、文件名或两者都太长”

    当我想运行或发布网络项目时 我收到此错误 严重性代码 说明 项目文件行抑制状态 错误 无法评估项目元数据 FullPath 项目元数据 FullPath 无法应用于路径 jquery ui 1 10 3 custom development
  • 为什么编译器将“char”匹配“int”而不是“short”?

    我有一个小程序 include

随机推荐