2009-08-14 45 views

回答

7

从程序员的角度来看,PageControl解决方案很快失去控制。可能代码太多,当然也可能是一个表单上的许多组件。 (原来这个问题被标记为Delphi,所以我从那里开始。)

从用户的角度来看,“打开新窗口”的范例常常令人困惑。我们人们倾向于认为我们能够同时进行多任务处理和处理许多开放的窗口和任务,但我们不是(我们的任务是像计算机一样在时间的浪费中切换,并增加准确度的损失)。

显然这取决于应用程序的类型。不过,我会倾向于一个范例为Chrome和Firefox显示在其最新的化身:

  • 保持各种形式不同的标签
  • 让用户脱离一个标签到它自己的形式(码头,并通过拖拽%取消停靠滴)
  • 添加导航

的好方法我实现了类似的SDI作为应用程序的主界面了。看看“前景风格”。导航,对象列表,不同窗格中的对象细节,以及驾驶舱等其他窗格。然后为某些任务(某些模态,某些非模态)打开一个新的窗口/窗体,但是时间很短。电子邮件写完后,它会被发送并关闭窗口。但是,如果我有能力这样做的话,我有可能在当时处理多封电子邮件。

看看这个问题。如果它具有仪表板特性,则采用“前景风格”左右。如果用户是广泛的,异构的,非计算机精明的人群,则在标签上使用SDI或表单。如果你为程序员写信,你可能会选择多种形式,只是因为我们倾向于认为我们可以处理它。它适用于多个屏幕(希望)。

+0

+1,很好的答案。你会同意,虽然没有什么特定于Delphi的问题(既不是问题也不是你的答案)。 – mghie 2009-08-14 12:11:10

+0

@mghie:我同意。但我不知道其他语言使用PageControl范例需要的代码量。也许有些语言在这方面进行了优化,这是一条路。 – 2009-08-14 12:27:02

+0

@Ralph:在页面控件中使用表单或框架作为页面,组件数量或单个单元的大小没有问题。正如你所写的,如果你愿意的话,它可能会(或可能)从程序员POV中产生问题。我明白这个问题主要是关于GUI设计部分。 – mghie 2009-08-14 14:01:46

2

在我看来,MDI是最差的选择。没有什么比讨厌调整一堆窗户大小,或者拼凑它们什么的更讨厌了。

标签也是不好的,特别是如果你有不止一行(或者如果你有一行,但仍然有更多的标签比适合,并且必须使用一些时髦的滚动条或“更多”按钮)。

我宁愿看到程序员考虑这个问题,并根据我作为用户所做的事情向我展示我需要看到的东西。在用户控件中实现不同的用户界面作为用户控件(而不是离散形式),然后根据当前上下文显示或隐藏它们是一种方法。

0

如果您为每个标签内容使用框架,则选项卡式表单是一个不错的主意。这样可以避免在单一表格单元中获取太多代码带来的麻烦。尝试与谷歌浏览器一样。我个人创建了一个菜单,其中的选项实际上是只在用户请求时加载的框架,所以除非用户需要全部打开,否则将永远不会显示多个选项卡。