此浏览器不再受支持。
请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。
visualStudio2022的WinForm项目Form的Size属性上限只能是当前电脑的分辨率吗?
我尝试修改1100到1200,会自动改回1100.
怎么取消这个限制?因为我的程序编译后可能在其他分辨率的设备上使用.
Hi @兰树豪,
经过我的测试,此问题我们可以通过**添加一个显示器进行扩展屏幕(宽),或者使用更高分辨率的显示器(宽,高)**可以得到解决。
对于这个问题来说,添加显示器可能并不是一个好的解决方案,但是它确实有效。 我相信Visual Studio团队在对Winform设计板块应该是想到此问题的,如果允许用户自定义设置大小很可能会造成排版混乱的情况。 如果出现大量关于自定义大小或者高分辨率显示器有关的需求,我们的产品工程师可以在Visual Studio论坛中进行查看,建议您可以访问 https://developercommunity.microsoft.com/VisualStudio/suggest, 进行提交需求。
下面是我的部分测试步骤,发现这个问题应该与VS2022对WinForm模板的设计的限制有关。
测试过设置AutoScaleMode.None , MaximumSize 无法得到解决, 也包括覆盖底层 System.Drawing.Size。
部分测试代码如下:
// 通过 P/Invoke 引入 user32.dll 中的 MoveWindow 方法 [DllImport("user32.dll", EntryPoint = "MoveWindow")] private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint); // 重写 SetBoundsCore 方法来取消窗体大小的限制 protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) { // 调用基类的 SetBoundsCore 方法 base.SetBoundsCore(x, y, width, height, specified); // 使用 MoveWindow 方法来设置窗体的位置和大小,绕过分辨率的限制 MoveWindow(this.Handle, x, y, width, height, true); }
Best Regards
Jason