我在鼠标光标下设置了工具提示,但它一直闪烁,即使光标没有移动也是如此。关于如何防止工具提示闪烁的任何想法?
代码:
<iframe ng-src="url"></iframe>
答案 0 :(得分:1)
经过一些测试后,似乎一旦显示工具提示,DataGridView
暂时失去焦点。当它重新获得焦点时,再次调用MouseMove
事件会导致工具提示关闭并再次重新显示,因此它会无限延续,占用CPU和一些RAM,直到将鼠标移动到单元格之外。
解决此问题的最简单方法是,自上次调用MouseMove
以来检查鼠标是否移动,然后仅重新显示工具提示 如果 < / em>鼠标移动了。
我使用CellMouseMove
和CellMouseLeave
事件来保存额外的检查,如果鼠标位于单元格上方:
Dim PreviousCursorPos As New Point(-1, -1)
Private Sub DataGridView1_CellMouseMove(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseMove
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 AndAlso _
PreviousCursorPos <> Cursor.Position Then 'If the mouse is not in the same position as before, then execute the code.
DataGridView1.Cursor = Cursors.Help
ToolTip1.Active = True
Dim cp = Cursor.Position
cp.Y += CInt(Cursor.Size.Height * 0.2)
cp.X += CInt(Cursor.Size.Width * 0.8)
ToolTip1.Show("Details...", Me, Me.PointToClient(cp))
PreviousCursorPos = Cursor.Position
End If
End Sub
Private Sub DataGridView1_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellMouseLeave
DataGridView1.Cursor = Cursors.Default
ToolTip1.Active = False
End Sub
移动鼠标时,工具提示会闪烁一下,但一旦它仍然存在问题。