2009-06-17 18 views
6

I持って次の関数(つまり、誤っている):スクリーン座標を相対座標(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]... 
} 

しかし、それは考慮にフォームの飾りを取っていないので、これは間違っている...私はより良い方法が存在しなければならないと確信していますこれをハードコーディングする以外にも(VistaとXP、Win2kのようないくつかのことによると、いずれにしても間違っているでしょうが)、私はそれを見つけることができません。

答えて

11

あなたは使用することができます。

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

を相対座標を取得します。

関連する問題