2009-12-09 23 views
0

我注意到在UI开发(Web和胖客户端),其中有一组单选按钮的一个常见的场景,并点击一个单选按钮,意味着你要“选择”其他控件的一定的“集”(用于简单的缘故,假设他们都是文本框)。单选按钮的模式,每个选择一组“其他控件”?

只是为了说明,星号表示单选按钮和下划线表示文本框。每个单选按钮应该“选择”同一行上的“设置”文本框。

* ________ ________ __________ 

* ________ 

* ________ ________ 

所以翻译成UI的要求,这意味着

  1. 每当用户点击一个单选 按钮,所有的值在文本框中 不在其“设置”应该被消灭 ,并且

  2. 每当用户开始输入到文本框中时,控制它的单选按钮应该被自动选择(这也意味着消除其他文本框的值,如上)。

对我来说,问题在于正确编程是非常困难的。有很多事件要处理,并且处理程序可能导致其他事件触发等。

是否有任何可以遵循的“模式”?

回答

0

实际上,从可用性的角度来看,我建议您在取消选中单选按钮时不要擦除文本框中的值。当用户在单选按钮之间切换时,您不应该摧毁他们的工作。通过不清除文本框,用户可以在选项B之后返回使用选项A,而无需重新输入文本框的值。

你可能想禁用文本框时,相关的单选按钮是为了表示对你的用户,文本框的值不适用未选中。您可能还应该选择一个单选按钮,将焦点自动放置在第一个关联的文本框中,以保存用户额外的鼠标单击或制表键。对于大多数情况下,这将与用户在原始设计中点击所需文本框一样高效。

这种设计也简化了你的代码。您只需要在单选按钮的更新事件中设置启用和焦点。

0

有很多事件的处理

控制器的一个小的层次结构可能有所帮助。行控制器负责处理来自单个行中的小部件的事件并选择/取消选择特定的行。行集控制器负责将“其他行选定”通知传递给集合中的行。

有人可能会称这种层次结构的MVC(这里是一种模式:-)),尽管这个名字听起来对我来说太重要了,无法描述上述内容。

并且处理程序可能导致其他事件触发等。

貌似工作的行控制器打压,而选择/取消选择连续发射的辅助事件。行控制器知道是否正在执行选择/取消选择,并因此可以抑制次要事件。不知道这是否是一种模式。也许一个布尔标志图案,表明选择正在发生:-)

0

您可以使用“窗体” UI格局及其相关的图案(替代子窗体,子窗体选择等)

您可以读取这些模式的解释here

相关问题