【发布时间】:2014-11-28 16:15:25
【问题描述】:
我有一个 WinForms 应用程序。每个表单和用户控件设置其工具提示如下:
// in the control constructor
var toolTip = new ToolTip();
this.Disposed += (o, e) => toolTip.Dispose();
toolTip.SetToolTip(this.someButton, "...");
toolTip.SetToolTip(this.someCheckBox, "...");
...
但是,当我将鼠标悬停在控件上时,工具提示不会出现。这是使用工具提示的适当方式吗?应用程序的另一部分(例如,监听某些事件)中是否发生了会阻止工具提示工作的事情?
请注意,我的外部表单的工具条按钮(通过按钮的工具提示属性配置)上的工具提示确实可以按预期工作。
编辑:
我对此进行了更多观察,并且注意到有时会出现工具提示,它只是非常“不稳定”。基本上,有时当我将鼠标悬停在控件上时,它会非常短暂地显示出来,然后闪烁消失。我可以使用 .Show() 和较长的 AutoPopDelay 手动显示它,但它永远不会消失!
【问题讨论】:
-
不确定您在其他地方做什么,但您的代码对我有用,您确定启用了用户控件吗?
-
@MarkHall 我是否必须明确将 enabled 属性设置为 true?控件上的所有按钮、文本框等都可以正常工作。
-
不,你没有。它将继承父母状态。某些东西可能会将焦点从控件上移开。尝试将处理程序附加到 ToolTip 的 Popup 事件并查看它是否被触发。
-
@ChaseMedallion 我有时也有这个问题,现在(再次)在这里寻求答案。就我而言,在我取消隐藏标签页之前,TT 不起作用,即使带有 TT 的控件甚至不参与标签控件。 PS 几乎没有人告诉你他们为什么投反对票。这很烦人。至少有足够的资金来解释你的不满,对吧?
-
不是一个答案,而是一个观察:在我最近的案例中,如果我从集合中删除一个标签页(在这种情况下是最右边的,但我没有测试过其他人)。如果我没有删除标签页,或者重新插入它,它显示得很好。奇怪。
标签: c# winforms user-controls tooltip