如何在c# 4.0中在任何屏幕分辨率下有效地运行或调整Windows应用程序

本文关键字:运行 有效地 调整 应用程序 Windows 分辨率 屏幕 任何 | 更新日期: 2023-09-27 17:52:34

如何在c# 4.0的任何屏幕分辨率下有效地运行或调整Windows应用程序?

我已经设置了1600 x 1200的分辨率,但是如果我尝试在较低的分辨率下,只有部分表单是可见的。

如何解决这个问题?我搜索了很多,了解了Anchor &Dock将是有用的,但也要知道这些应该从设计开始就使用,但我已经完成了我的应用程序,而这个解决方案现在导致问题,当我在任何系统中安装应用程序

如何在c# 4.0中在任何屏幕分辨率下有效地运行或调整Windows应用程序

确保控件保持可见的快速而肮脏的方法是在表单上放置一个Panel,设置Dock = FillAutoScroll = True,然后在表单中放置其他控件。你的控制不会被切断,但你的程序不会赢得任何美学奖项。如果程序是全新的,那么你真的不应该这样开始。

你可以重新设计它来使用锚和停靠,正如你提到的。您还可以将诸如一行Button控件或一系列TextBox控件等项目放置在FlowLayoutPanel中,这将在您调整窗体大小时重新定位它们。

但是如果调整屏幕分辨率对你来说很重要,那么从一开始就使用WPF是一个更好的方法。控件会根据其容器控件自动调整大小和重新定位。

真正的问题应该是:

  • 我如何希望控件调整自己与他们的父?

答案是您需要指定锚。锚是用来告诉你的控件在调整大小时应该如何反应,以及应该关注什么。

假设你有一个表单有两个[Cancel][OK]按钮。它们通常被认为适合放在窗口的右下角。但是默认的Anchor属性被设置为Top, Left,所以在你的窗体的大小调整,他们坚持到Top, Left角,他们属于根据默认设置。如果你最大化你的表单,这不会有任何麻烦,因此你将有你的按钮可能在屏幕中间。但至少,您将充分看到每个控件。

但是如果把你的表单调整得越来越小呢?你还希望他们坚持在Top, Left,或Bottom, Right将更有用?我的猜测是,您应该将Anchor属性设置为Bottom, Right,对于这两个。

这可能会派上用场,有不同的Anchor属性设置取决于你想要你的控件如何反应你的窗体调整大小。让我们取三个相互水平对齐的TextBox控件。也许您的较长的字段将是您的对象Description属性,位于窗体的水平中心。然后,当您调整大小时,您必须考虑如何调整大小更有意义。如果它是为了使它更长的调整大小,以填补你的所有控件的窗体宽度,那么也许你想要的DescriptionTextBox变得越来越宽,而相反的情况也应该是真的,在窗体的调整大小,你可能希望这个字段被调整小了。然后,为了实现这一点,您必须将Anchor属性设置为Left, Right,以便您的DescriptionTextBox控件的边缘在任何时候都保持与窗体边缘相同的距离。

另一件事是关注的情况下,调整大小较小的窗口,是它的MinimumSize属性。人们应该同意有一个尺寸为34x34像素的表单是有用处的。因此,将您的MinimumSize属性设置为一定的大小,使表单存在意义,您将避免控件相互重叠的显示故障。

有关Anchor属性的更多详细信息:Control。锚地产

有关MinimumSize属性的更多详细信息:Control。MinimumSize地产