【发布时间】:2010-12-20 06:40:06
【问题描述】:
我正在使用 VB.Net 2010 框架 2.0。 我正在为工具提示对象设置一个大字符串。在这种情况下,工具提示不会出现。如果字符串很短(比如 10 行),则 toptip 显示正确。
以下是代码:
Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
If _showToolTip Then
If Not IsNothing(_tooltipDSPanel) Then
_tooltipDSPanel.Dispose()
_tooltipDSPanel = Nothing
End If
_tooltipDSPanel = New ToolTip
_tooltipDSPanel.SetToolTip(Me, PanelText)
End If
End Sub
如果“PanelText”太长(比如 50 行),它不会出现。有时它会显示一个空的工具提示。
我哪里出错了?
感谢您提前回复。
【问题讨论】:
-
为什么每次都处理和重新创建
ToolTip对象? -
假设它适用于较短的字符串,如果没有出现,请通过重复将长度减半,如果出现则将其增加 50%,找到仍然有效的最长长度。请发布指定的工具提示值,或者尝试一个非常简单的字符串(只是重复“abc”字符串)以确保其中没有任何特殊字符。
-
处理和重新创建以避免内存泄漏。
-
@user460334:嗯,是的。如果要重新创建它,则需要处理旧的;这是正确的。问题是,为什么不每次要在控件上显示工具提示时重用 same
ToolTip对象,并且仅在窗体关闭时才释放它?
标签: .net vb.net winforms controls tooltip