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

时间:2014-03-22 11:36:47

标签: c# winforms screen-resolution

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

我已经用1600 x 1200分辨率完成了它,但如果我尝试使用较低分辨率,则只能看到部分表格。

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

2 个答案:

答案 0 :(得分:2)

确保您的控件保持可见的快速而肮脏的方法是在表单上放置Panel,设置Dock = FillAutoScroll = True,然后将所有其他控件放在表单中在里面。你的控件不会被切断,但你的程序不会因为美学而赢得任何奖项。如果该计划是全新的,那就不是你想要开始的方式了。

如您所述,您可以重新设计它以使用Anchors和Docking。您还可以在Button中放置一行TextBox控件或一系列FlowLayoutPanel控件等项目,这些项目将在您调整表单大小时重新定位它们。

但是,如果调整屏幕分辨率对您来说很重要,那么最好从一开始就使用WPF。根据容器控制,控件会根据需要自动调整大小并重新定位。

答案 1 :(得分:1)

真正的问题应该是:

  • 我如何让控件使用父级调整自己的大小?

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

假设您有一个包含两个[Cancel][OK]按钮的表单。通常认为它们适合窗户的右下角。但默认Anchor属性设置为Top, Left,因此在您的表单调整大小时,它们会根据默认设置粘贴到它们所属的Top, Left角落。如果您最大化您的表单,这将不会有任何麻烦,因此您可能会在屏幕中间显示您的按钮。但至少,你会充分看到每一项控制。

但是如果调整你的形状越小越小呢?你还希望他们坚持Top, Left,或者Bottom, Right会更有用吗?我的猜测是你应该将Anchor属性设置为Bottom, Right,对于那两个属性。

根据您希望控件对表单大小调整的反应,这可能会派上用场Anchor设置不同的TextBox。让我们将三个Description控件相互水平对齐。也许您的较长字段将是位于表单水平中心的对象DescriptionTextBox属性。然后,当你升级时,你必须考虑在调整大小时更有意义。如果要在调整大小时使其更长,以便用你所有的控制来填充你的表单宽度,那么也许你希望Anchor变宽和变宽,并且反对也应该是真的,在表单调整大小时,你可能希望这个字段的大小也要小一些。然后,为了实现这一点,您必须将Left, Right属性设置为DescriptionTextBox,以便MinimumSize控件的边缘随时保持与表单边缘相同的距离

在调整到较小窗口的情况下另一件事是关注的,是MinimumSize属性。人们应该同意使用尺寸为34x34像素的形式。因此,将您的Anchor属性设置为特定大小,使表单存在感觉,您将避免显示控件的显示故障。

有关MinimumSize媒体资源的详细信息:Control.Anchor Property

有关{{1}}媒体资源的详细信息:Control.MinimumSize Property