Winforms 如何根据分辨率重新调整控件的大小?

Winforms 如何根据分辨率重新调整控件的大小?,winforms,visual-studio,resize,anchor,dock,Winforms,Visual Studio,Resize,Anchor,Dock,在WinForms应用程序中,处理根据屏幕分辨率重新调整控件大小以及最大化和重新调整窗口大小的最佳方法是什么。我有3列,设置如下。在每列中标记文本框。您可以将其计算为6列。我已经尝试锚定到右侧,但问题是第1列中的文本框将与接下来的2列重叠。我也尝试过对接,但这似乎不起作用。有什么简单的方法可以做到这一点吗 您可以更改窗体的自动缩放模式,也可以更改每个控件的自动大小属性。您可以使用splitcontainer或Panel来形成列。您没有定义“列”的含义。通常,您应该使用一个表格布局面板,并在每个“

在WinForms应用程序中,处理根据屏幕分辨率重新调整控件大小以及最大化和重新调整窗口大小的最佳方法是什么。我有3列,设置如下。在每列中标记文本框。您可以将其计算为6列。我已经尝试锚定到右侧,但问题是第1列中的文本框将与接下来的2列重叠。我也尝试过对接,但这似乎不起作用。有什么简单的方法可以做到这一点吗

您可以更改窗体的
自动缩放模式
,也可以更改每个控件的自动大小属性。您可以使用splitcontainer或Panel来形成列。

您没有定义“列”的含义。通常,您应该使用一个
表格布局面板
,并在每个“单元格”内设置控件的定位点。

TL;DR:如果不手动编码调整大小逻辑,则无法执行此操作。作为旁注,您可能不应该尝试这样做

在传统的WinForms中,如果不滚动您自己的解决方案,就无法自动获取我的知识。属性,但虽然它是自动的,但不支持按分辨率自动调整大小。它提供了一个基于Windows中字体大小设置或DPI设置的缩放选项。简单地更改屏幕分辨率时,这两种设置都不会直接更改,老实说,大多数典型用户(甚至可能是超级用户)可能永远不会修改DPI或字体大小设置

此外,从用户的基本角度来看,提高屏幕分辨率的全部目的是为虚拟桌面提供更多的“空间”来放置应用程序窗口。诚然,现在大多数显示器都是基于LCD的,所以改变这种情况几乎已经成为过去的事了。但是,购买一个新的、更大的显示器会让一个典型的用户增加这个虚拟屏幕空间,这样他们就可以同时在屏幕上看到更多的窗口。我认为,一个始终保持与屏幕分辨率相同的相对大小的应用程序是非常罕见的,这违背了大多数用户的期望,甚至包括美国高级开发人员用户

通常,如果调整窗口大小,您需要对应用程序进行编码,以智能有效地调整其内容,但通常情况下,您会听从用户的管理,因为这是他们的机器和偏好(将其视为“我的房子,我的规则”原则)。这也是为什么大多数(所有?)应用程序不改变窗口位置,除非用户直接操作(通过拖动窗口框架等)。事实上,所有这些都可能解释了为什么微软选择不包括任何基于分辨率的自动大小调整规则