2009-06-17 9 views
6

tengo la siguiente función (esto es incorrecto):Cómo convertir coordenadas de pantalla para formar coordenadas relativas (formas de win)?

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]... 
} 

Pero esto es incorrecto, ya que no tiene en cuenta las decoraciones formas ... Estoy seguro de que tiene que haber una mejor manera de hacer esto aparte de la codificación difícil (que de todos modos estará mal, dependiendo de varias cosas como Vista vs XP vs Win2k), pero no puedo encontrarlo.

Respuesta

11

que puede utilizar:

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

de obtener coordenadas relativas.

Cuestiones relacionadas