ToolTip对于长文本(2000+字符)工作非常慢

时间:2013-07-26 08:53:21

标签: winforms performance tooltip limit

我们需要使用内置的WinForms工具提示控件为我们的一个控件显示一个非常长的工具提示(大约4000个字符)。但是如果我们这样做,当我们将鼠标指针放入目标控件以查看提示时,表单会冻结一两分钟。之后没有任何事情发生。

我们试验并发现,当标准工具提示有大约2000个字符时,标准工具提示开始工作很慢,当我们增加字符数时,情况会变得更糟。这是一个已知问题,是否有任何解决方法?请不要建议修剪提示文本 - 我们需要按原样显示字符串。

2 个答案:

答案 0 :(得分:1)

当您将一个文本字符串分配给ToolTip时,绘制它的过程的一部分涉及调用USP10.dll来处理屏幕上字符的Unicode布局。通过在程序冻结时查看堆栈跟踪,我能够看到这一点。对于长字符串,这种布局的性能很糟糕。

为应用程序禁用视觉样式(注释掉EnableVisualStyles())修复了问题 - 工具提示立即显示,但这不是最佳解决方案。

我一直在寻找并找到this page,表明问题可能与需要自动换行的长字符串布局相关联。通过在工具提示文本中插入换行符,我发现字符串立即显示。因此,如果您可以确定手动插入换行符的位置,ToolTip应该快速显示。

答案 1 :(得分:0)

如何使用其他工具提示,即HtmlToolip