我创建了一个菜单,使用树视图在用户点击节点时启动表单。为了完成外观,我将节点设置为看起来像超链接。当用户将鼠标悬停在一个节点上时,我想让光标变为一只手(就像你在悬停在一个链接上时看到的那样),但是到目前为止,我只能将光标改变为悬停在一个节点内树视图,而不是节点。据我所知,TreeNode没有像MouseEnter这样的事件,所以我不能让它们自己处理事件。
我试图使用此函数循环遍历节点并根据游标的Point属性检查TreeNode的Bounds属性,但到目前为止If
块总是计算为false,这意味着游标永远不会改变。
Private Sub uxNavigationTreeView_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles uxNavigationTreeView.MouseHover
For Each node As TreeNode In uxNavigationTreeView.Nodes
For Each child As TreeNode In node.Nodes
If child.Bounds.IntersectsWith(New Rectangle(Cursor.Position, New Size(1, 1))) Then
Me.Cursor = Cursors.Hand
End If
Next
Next
End Sub
我希望有人能指出我正确的方向来实现这一目标。本质上,我正在寻找嵌套的LinkButton数组的外观。
答案 0 :(得分:1)
Cursor.Position返回屏幕坐标中的鼠标指针位置 - 使用uxNavigationTreeView。PointToClient将位置转换为客户端坐标,我想你会有更多运气。
答案 1 :(得分:1)
使用MouseMove事件。调用HitTest()方法。