2009-06-17 7 views
6

나는이 다음 함수 (즉 잘못된) :화면 좌표를 상대 좌표 (winforms)로 변환하는 방법은 무엇입니까?

private void TreeView_DragDrop(object sender, DragEventArgs e) 
{ 
    TreeNode CurrentNode = 
     TreeView.GetNodeAt(e.X - this.Left - NotesView.Left, 
          e.Y - this.Top - NotesView.Top); 
    // [snip]... 
} 

그러나이 계정으로 양식의 장식을하지 않기 때문에 이것은 잘못된 것입니다 ... 나는 더 나은 방법이 있어야한다 확신 이 하드 코딩 이외의 (어쨌든, 비스타 대 XP 대 Win2k와 같은 여러 가지에 따라 틀린거야),하지만 그것을 찾을 수 없습니다.

답변

11

당신은 사용할 수 있습니다

Point clientPoint = TreeView.PointToClient(new Point(e.X, e.Y)); 

상대 좌표를 얻을 수 있습니다.

관련 문제