我有一个 WinForms 应用程序。每个表单和用户控件都按如下方式设置其工具提示:
// in the control constructor
var toolTip = new ToolTip();
this.Disposed += (o, e) => toolTip.Dispose();
toolTip.SetToolTip(this.someButton, "...");
toolTip.SetToolTip(this.someCheckBox, "...");
...
但是,当我将鼠标悬停在控件上时,工具提示不会出现。这是使用工具提示的合适方法吗?应用程序的其他部分是否可能发生某些事情(例如监听某些事件),导致工具提示无法工作?
请注意,我的外部表单工具条按钮上的工具提示(通过按钮的工具提示属性配置)确实按预期工作。
EDIT:
我对此进行了更多观察,并且注意到有时工具提示确实会出现,但它非常“不稳定”。基本上,有时当我将鼠标悬停在控件上时,它会非常短暂地显示,然后闪烁消失。我可以使用 .Show() 和长 AutoPopDelay 手动显示它,但它永远不会消失!
你的代码对我来说似乎没问题。我在你的代码中找不到任何错误。但是,只有当控制被禁用时它才可能失败。顺便说一句,您可以尝试另一种类似的方法。但是,我不想建议您像这样显示工具提示。
private void someButton_MouseEnter(...)
{
toolTip.Show("Tooltip text goes here", (Button)sender);
}
您还可以指定工具提示的显示位置.Show()
方法。您可以使用一些重载函数。阅读msdn欲了解更多信息ToolTip.Show()
method.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)