当鼠标悬停在TreeNode上时,如何更改光标?
问题描述:
我已经创建了一个菜单,使用树视图来启动表单,当用户点击一个节点。为了完成外观,我将节点设置为超链接。当用户悬停在一个节点上时,我希望将光标变成一只手(就像您将鼠标悬停在链接上时看到的那只手一样),但是到目前为止,我只能够在悬停在内部时更改光标树视图,而不是一个节点。据我所知,TreeNode没有像MouseEnter这样的事件,所以我不能让它们自己处理事件。当鼠标悬停在TreeNode上时,如何更改光标?
我试图使用这个函数来遍历节点,并检查TreeNode的Bounds属性和光标的Point属性,但到目前为止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数组的外观。
答
使用MouseMove事件。调用HitTest()方法。
答
Cursor.Position返回鼠标指针在屏幕坐标中的位置 - 使用uxNavigationTreeView。 PointToClient将位置转换为客户端坐标,我想你会有更多的运气。
+0
明天我会出手。当天下班。谢谢。 – 2010-07-16 00:00:27
事件没有解除。 – 2010-07-16 16:13:08
你有一个不会引发MouseMove事件的控件?放弃所有希望。 – 2010-07-16 16:19:58
对不起,正在使用错误的MouseMove事件。这真的很好。谢谢。 – 2010-07-16 16:25:56