给定:我有一个基于DataGridView列表的应用程序,它使用外部工具提示(禁用默认的dgv工具提示)来显示鼠标悬停时特定列的大内容。
问题:
当表单本身不在焦点上时,它总是在鼠标悬停时显示工具提示。
方案:
场景#2:
设置:
代码:
Private Sub gridView_CellMouseEnter(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellMouseEnter
If e.ColumnIndex = DirectCast(sender, DataGridView).Columns.Count - 1 And Not e.RowIndex = -1 Then
ToolTip1.SetToolTip(sender, sender.rows(e.RowIndex).cells(e.ColumnIndex).value.ToString)
End If
End Sub
我需要做些什么来解决这个烦人的错误?
答案 0 :(得分:1)
Dim isActive As Boolean
Private Sub Form1_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
isActive = True
End Sub
Private Sub Form1_Deactivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate
isActive = False
End Sub
在任何时间点检查
isActive
是true
的{{1}},如果false
则true
处于有效状态。
其他解决方案是订阅form
并将回报与您的GetForegroundWindow()
进行比较:
forms handle