2011-02-14 13 views
32

Digamos que tengo un control y su ubicación es relativa a su padre. Si está incrustado muchas veces y es el gran bisnieto de la forma principal, ¿cómo puedo determinar cuál es su ubicación en toda la pantalla, no solo su ubicación en la ubicación principal inmediata? Esto es con el propósito de imprimir un Control en particular a través de una captura de pantalla (ya que para algunos controles el DrawToBitmap no funciona correctamente).Obteniendo la ubicación de un control relativo a toda la pantalla?

Respuesta

80

Usted está buscando el PointToScreen method:

Point location = someControl.PointToScreen(Point.Empty); 
+2

Tenga en cuenta que PointToScreen toma _client AREA_ coordenadas, por lo que usar este código en un formulario, por ejemplo, no dar el resultado correcto. – rymdsmurf

+3

@rymdsmurf no estoy seguro si te entiendo correctamente, pero si lo usas en un 'Form' (como' myForm.PointToScreen') y tienes las coordenadas correctas (de 'control.Location') te dará las coordenadas correctas en la pantalla. – Artholl

Cuestiones relacionadas