2010-07-15 2 views
1

사용자가 노드를 클릭 할 때 양식을 실행하기 위해 treeview를 사용하여 메뉴를 만들었습니다. 모양과 느낌을 완성하기 위해 노드를 하이퍼 링크처럼 보이도록 설정했습니다. 사용자가 노드를 가리키면 커서가 손으로 바뀌도록하고 싶습니다. (커서 위로 움직이면 볼 수있는 것과 같습니다) 그러나 지금까지는 커서를 커서를 가져 가면 변경할 수 없었습니다. 노드를 넘어서 트리 뷰. 내가 말할 수있는 한, 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 배열의 모양과 느낌을 찾고 있습니다.

답변

1

MouseMove 이벤트를 사용하십시오. HitTest() 메서드를 호출하십시오.

+0

이벤트가 발생하지 않습니다. –

+0

MouseMove 이벤트를 발생시키지 않는 컨트롤이 있습니까 ?? 모든 희망을 포기하십시오. –

+0

죄송합니다, 잘못된 MouseMove 이벤트가 사용되었습니다. 그게 정말 잘됐다. 감사. –

1

커서 위치는 화면 좌표에서 마우스 포인터 위치를 반환합니다. uxNavigationTreeView를 사용하십시오. PointToClient 위치를 클라이언트 좌표로 변환하면 더 많은 행운을 누릴 수 있다고 생각합니다.

+0

내일 촬영할 것입니다. 당일 치기. 감사. –