Windows Forms(或一般的GUI开发)建议

时间:2009-08-17 18:19:26

标签: winforms user-interface

我应该如何开发一个可以很好地调整大小的表单?

虽然这听起来像一个简单的问题但我正在努力解决的问题是我正在复制我几年前在Swing中制作的现有应用程序。它围绕一个单独的形式构建,当您选择不同的选项时,它会隐藏/显示面板。

它宽约600 x 700像素,但它的固定尺寸窗口。

这是好习惯吗? GUI可以正常工作,但是如果你查看其他应用程序,你可以轻松调整它们的大小。某些应用程序看起来很笨,但应该选择吗?

主屏幕由大约五个按钮组成,当最大化时,这看起来很荒谬,但同时如果表单可调整大小,那么当你开始调整表单大小时,它就变得愚蠢了。

我知道布局管理器等等所以不需要告诉我检查这些,我的主要问题是我可以生成一个优秀的固定宽度应用程序但事实就是这样。

对此有何建议/链接?

3 个答案:

答案 0 :(得分:4)

就个人而言,我认为固定大小的形式是一种可怕的用户体验。

我总是试图建立我的,以便他们可以优雅地调整大小(即使他们看起来有点奇怪)。

如果您在WinForms开发中使用.NET,则可以轻松使用表格布局,然后锚定控件,以便礼貌地调整大小。

答案 1 :(得分:3)

固定大小的gui通常是一个坏主意,因为大多数表单都有一个可以合理调整大小的用户界面元素。

首先考虑一个只包含两个按钮的表单。 (一个愚蠢的形式,是的,但为了讨论我们会认为这是正确的工作)当最初以正确的方式(适当的本地化,例如),没有充分的理由使表格可调整大小。如果你放大或缩小了表格,你只需要让区域点击更大的按钮,但是你要点击比按钮更小的区域来调整它,所以没有理由。在这种情况下,表单可以调整大小是没有意义的,因为添加额外控件没有用户利益。

现在考虑一个包含listview的表单。使这种形式在两个方面都可调整,有明显的可用性优势。列表视图可能包含的项目数量可能比较小的区域(水平和垂直)都要多,因此有意义的是,此表单可以完全调整大小,以便用户可以根据需要显示尽可能多的数据。

每个表单控件都通过约束或约定隐式地具有一定的自由度。通常,按钮不会调整大小,因此它们没有自由度(即使它们可以调整大小)。列表视图和列表框具有两个自由度,水平以显示每行更多数据,垂直显示更多行。单行文本框具有一个自由度,水平。因为它们是单线,所以它们不会垂直扩展,但它们会水平扩展。

这些自由度可帮助您确定表单的布局。在调整表单大小时,具有自由度的表单元素应在适当的方向上调整大小。我更喜欢设计我的表单,只有一个控件在一个区域中具有两个自由度,其中区域通常通过分离器分开。我更喜欢避免显式的表格布局面板,除非有一个非常具体的需要,因为当有一个表格布局可以使用时,很容易使表格过于复杂。 WinForms中的锚点为控件布局提供了一个非常强大和灵活的抽象,但是,我非常鼓励它们的使用。

答案 2 :(得分:0)

除了布局面板(我最喜欢的是表格布局)之外,熟悉Anchor,Dock(更多用于表格布局)和MinimumSize属性。在调整表单大小时,他们会为您做很多工作。

你的大多数表格都会看起来很傻,但我的一般规则是:

  1. 按钮保持相同的大小 无论形式大小(没有Top和 底锚;没有左右 锚)。
  2. 按钮与...保持在同一个地方 尊重边界(Anchor 组合:{左,上},{左, Bottom},{Right,Top},{对, 底部})
  3. 只有最右边的文本框才会增长 调整大小时(Anchor = Left和 右)。
  4. 单个多行文本框可以统治表单 (锚=左,右,上,下)
  5. 使用多个多行文本框时,最低的文本框将统治表单。
  6. MinimumSize尽可能小于640x480;最大800x600
  7. 默认大小为MinimumSize - 让用户在需要时将其设置得更大。