您是否曾经遇到过您真正想要使用的菜单功能但不能导致其被禁用或更糟糕的情况?

有一个参数是始终保持启用菜单,然后向用户显示一条消息,说明为什么菜单功能在单击时无法激活。 我认为这有其优点,但也许有一种更聪明的方法可以解决这个问题。

我很想听听别人的想法。

===============>>#1 票数:10

如果您正在引用Joel的帖子不要隐藏或禁用菜单项 ,他在StackOverflow播客澄清说他打算有信息 - 而不是对话 - 告诉你为什么菜单项不会做任何事情:

因此,我想到的用例是,你曾经提到过,在Windows Media Player中,你可以在收听播客等时更快地播放内容,并且它会加速它们。 当我在那里看时,那是被禁用的。 我无法弄清楚如何启用它。 显然,帮助文件没有帮助 - 不是任何人都阅读帮助文件,但即使你这样做,你也找不到答案。 这有点令人沮丧,我宁愿让菜单项启用,让它告诉我“由于以下原因,我现在不打算这样做。我拒绝这样做。”

===============>>#2 票数:4

与大多数关于可用性的问题一样,答案是“它取决于”。 这取决于问题域,用户类型,功能的重要程度等等。 你的问题没有一个单一的答案。

我认为普遍的共识是,从来没有完全从菜单中删除项目。 菜单允许用户自由发现可用的功能,但如果隐藏或移动这些项目则无助于用户。 此外,移动它们使得无法熟练使用应用程序,因为您必须不断扫描要选择的项目的菜单。

至于禁用与启用项目并显示对话框或消息解释为什么它不是你可以做的事情,我通常更喜欢前者。 但是,如果有一个功能,用户无法合理地预期从显示器直观,则启用它是一个不错的选择。

例如,如果禁用“粘贴”,则对大多数计算机用户来说,没有什么可以粘贴的,这是相当明显的。 但是,如果你有一个“Frizzle the Bonfraz”菜单项并且用户可能不知道Bonfraz是什么或为什么他们可能想要启用但不能,那么最好让它至少启用一段时间。

所以,这取决于。 如果可能的话,做你认为最好的事情然后问你的用户。

===============>>#3 票数:3

为了概括一点(也许是错误的......),您更喜欢以下哪种情况:

  1. 在一个没有船或桥的岛上找到自己。 当然,你可以和镇上的村民交谈,他会告诉你一个神奇的词来建造一座桥......但你不知道魔法存在。
  2. 你看到有一座桥; 然而,当你到达它时,有一个标志告诉你桥梁没有开放使用。
  3. 你看到有一座桥,庆祝! 当你到达桥的尽头时,它会告诉你出口没有打开。 他们必须回去。

也许我有偏见,但我不相信启用菜单选项并允许用户点击它是最好的主意。 那只是在浪费某个人的时间。 在他们点击该项目之前,他们无法区分该项目是否可用。 (场景#3)

将物品全部藏在一起有其优点和缺点。 完全隐藏,您冒着用户永远不会发现所有这些功能的风险; 然而,与此同时,您将有机会使您的应用程序“有趣”和“可被发现”。 我一直认为动作的可见性更适合工具栏之类的项目。 一个很好的例子就是在某些应用程序中,当您单击图像时弹出图片工具栏...并在您单击文本时消失。 总的来说,如果您的应用程序的整体体验有助于用户“发现”和“探索”的态度,我会说这样的事情是最好的。 (场景#1)

我通常建议禁用这些项目并向用户提供工具提示,通知他们如何启用它(甚至是帮助的链接?); 但是,这不能过头了。 这必须适度进行。 (场景#2)

通常,当用户可以轻松发现与上下文相关的操作(即图片工具栏)时,隐藏项目。 如果用户不能轻易找到它,请将其禁用。

===============>>#4 票数:2

禁用它,但让工具提示解释为什么它被禁用

===============>>#5 票数:0

我一直相信你应该尽可能地隐藏。 (您的应用程序不应该比用户可以/应该做的更复杂。)

如果您显示用户不应使用的菜单选项,他们可能会单击它,但认为您的应用程序已损坏,因为没有任何反应。

这就是我至少想到的......

===============>>#6 票数:0

这取决于实际情况。 如果菜单项已应用于当前上下文但由于状态而不可用,则应禁用该菜单项。 如果上下文已更改,因此不再适用,则应将其删除。

===============>>#7 票数:0

我自己从来没有真正理解过这个(我没有编程GUI)。 为什么甚至首先隐藏或禁用菜单项? 对于正在寻找特定菜单选项的大多数用户来说,发现它已禁用或甚至不存在,这是不直观的。

工具提示也不直观。 如果我在菜单项上移动鼠标,我不会停留足够长的时间来获得工具提示说明。 我更有可能因为我希望通过菜单访问的内容不存在或被禁用而感到沮丧。

也就是说,我实际上并不经常使用GUI菜单。 我发现可用的选项通常没用,或者可以通过更直观的方式访问,例如常用的键盘快捷键。

===============>>#8 票数:0

您可以在状态栏中显示“原因”。 或者更好的是,使用描述操作的文本并在可能的情况下包含信息。 例如,对于“复制”菜单项,状态栏中的文本将为:复制所选文本。 请注意“选定”部分,它告诉用户他需要选择文本以启用菜单项。

在我正在制作的工具中的另一个例子,我们有'Drop database'菜单项,但只有当你连接它时才能执行此操作。 因此,状态栏中的文本类似于:'删除数据库(仅在连接时)'。

  ask by Crusty translate from so

未解决问题?本站智能推荐:

5回复

何时在菜单项后使用省略号

在几乎所有具有菜单栏的应用程序中,一些项目后面都有省略号(...),有些则没有。 是否有一个众所周知的约定,何时将省略号放在那里,何时不放? 你什么时候做的? 你做到了吗? 我看过各种windows应用程序,这就是我要来的: 省略 打开表单的菜单项,需要用
1回复

为什么在使用SWTBot时禁用了菜单项?

我已经编写了一个使用SWTBot 的GUI测试来测试Extract Method重构。 我使用editor.selectRange()选择要提取到方法中的语句。 但是,当我运行单元测试时,“提取方法重构”菜单项被禁用。 因此,SWTBot无法调用重构。 当我们更改org.eclips
1回复

隐藏在黑莓手机中的菜单项

我正在开发一个应用程序,在该应用程序中我创建了一个主屏幕。在该主屏幕上,我添加了一个按钮字段。当我单击该按钮字段以打开我的弹出屏幕时,它将打开我的弹出屏幕,但它还会显示菜单我在屏幕前面为主屏幕添加的所有项目。但是,我不想显示这些菜单项,而只想单击该按钮即可打开弹出屏幕。请帮助我。
2回复

在弹出菜单的禁用菜单项上显示工具提示提示

所以我有一个TMenuItem连接到TPopupMenu上的TAction为TDBGrid(实际上是第三方,但你明白了)。 根据网格中选定的行,启用或禁用TAction。 我想要的是能够向用户显示提示,解释禁用该项目的原因。 至于为什么我想要一个关于禁用的菜单项的提示,我只想说我与Jo
1回复

Android Honeycomb-如何使选项菜单项看起来被禁用?

我正在尝试使用以下代码禁用选项菜单项之一: 但是,执行该方法后,禁用的项目看起来就像菜单的其余部分(启用)一样。 是否有可能使它看起来被禁用(变灰或其他)? 怎么样? 提前致谢
1回复

在空菜单项之间隐藏额外的分隔线

隐藏此链接中的菜单项后仍会显示分隔线=> 无法隐藏编辑菜单中的“首选项”项 我搜索了球拍文档,发现只添加了新的分隔符菜单项。 https://docs.racket-lang.org/gui/separator-menu-item_.html是否可以在空菜单项之间隐藏这些额外
3回复

Microchip弯曲C的规则?

当我遇到一堆看起来像这样的结构时,我正在挖掘一些与PIC单片机相关的headder文件: 这是标准C吗? 我无法找到任何其他类似的东西,即变量定义后的“:1” 我假设所有元素都代表位,那么这是Microchip对C编译器的补充,以使嵌入式程序员更容易吗?
2回复

Typemap规则令人困惑

根据MPI 2.2标准第4.1节:要创建新的数据类型,我们必须定义一个类型映射,它是(类型,位移)对的序列。 流离失所不需要是积极的,增加的,也不是明显的。 假设我按以下顺序定义了一个类型映射:{(double,0),(char,0)}这没有道理,但是可能,一个标准如何提供这么多的灵
2回复

如何禁用Quirk模式?

我在quirks模式下搜索堆栈溢出regarind ie8渲染。 我尝试通过以下代码禁用它。 但是当我使用ie和F12进行测试时。 即10 - >文件怪癖即7,8,9 - >即5怪癖模式。 如何将其关闭以使其仅以标准模式呈现。 因为我使用margin 0 auto来
2回复

Android与菜单项等效吗?

在使用Visual Studio中的Xamarin将现有的“ Windows窗体”应用程序(在手持设备上运行的Compact Framework / Windows CE应用程序)移植到Android(首先是-IOS和Windows Phone以后)方面,我正在迈出第一步。 旧版主窗体包含