我试图在禁用的ToolStripMenuItem上显示工具提示,以通知用户禁用它的原因。
我最初的想法是(因为禁用的控件不会触发事件)在父菜单条上选择MouseMove事件,并在禁用的控件上显示工具提示。但该事件似乎没有像预期的那样向上传播到父MenuStrip。它通常就是这样工作的,对吧?例如,一个禁用的文本框事件会向上移动到父面板吗?
PS。我开始认为这种糟糕的UI设计无论如何?有什么更好的方法?
技巧。我要么接受这是不可能告诉用户的(现在大多数用户都很高兴有时因为上下文/所选数据等原因而禁用了选项)。或者,您必须启用这些项目,并在用户尝试调用它们时显示弹出窗口或其他警告消息。
我不会讨论UI设计是否糟糕,而是显示详细说明禁用原因的工具提示。
然而,我确实在几年前就想好了如何为禁用按钮做这件事。我知道这不是你的确切问题,但它很相似,我写的博客文章可能对你有用。
您应该在包含的MenuStrip
上设置ShowItemToolTips = true
。即使禁用了ToolStripMenuItem
,工具提示也会显示(但如果禁用了整个MenuStrip,则不会显示)。
这是一个老问题,所以功能可能已经改变了,但OP可能犯了和我一样的错误——我的工具提示没有显示,所以我错误地认为这是因为ToolStripMenuItem
被禁用了。
我只是想指出这一点以供将来参考。