我们需要使用内置的 WinForms 工具提示控件来为我们的一个控件显示一个很长的工具提示(大约 4000 个字符)。但是如果我们这样做,当我们将鼠标指针放在目标控件中以查看提示时,表单会冻结一两分钟。之后什么也没有发生。
我们实验并发现,标准工具提示在大约 2000 个字符时开始工作很慢,当我们增加字符数时情况变得更糟。这是一个已知问题,是否有任何解决方法?请不要建议修剪提示文本 - 我们需要按原样显示字符串。
我们需要使用内置的 WinForms 工具提示控件来为我们的一个控件显示一个很长的工具提示(大约 4000 个字符)。但是如果我们这样做,当我们将鼠标指针放在目标控件中以查看提示时,表单会冻结一两分钟。之后什么也没有发生。
我们实验并发现,标准工具提示在大约 2000 个字符时开始工作很慢,当我们增加字符数时情况变得更糟。这是一个已知问题,是否有任何解决方法?请不要建议修剪提示文本 - 我们需要按原样显示字符串。
当您将文本字符串分配给 a 时ToolTip
,绘制过程的一部分涉及到调用USP10.dll
处理屏幕上字符的 Unicode 布局的调用。我可以通过在程序冻结时查看堆栈跟踪来看到这一点。这种布局的性能对于长字符串来说很糟糕。
禁用应用程序的视觉样式(注释掉EnableVisualStyles()
)解决了问题 - 工具提示会立即显示,尽管这不是最佳解决方案。
我一直在寻找并发现此页面表明问题可能与需要自动换行的长字符串布局有关。通过在工具提示文本中插入换行符,我发现字符串立即显示。因此,如果您可以手动确定在何处插入换行符,则ToolTip
应该会快速显示。
如何使用另一个 Tooltip ,即HtmlToolip?