2011-02-14 13 views
32

Diciamo che ho un controllo e la sua posizione è relativa al suo genitore. Se è incorporato molte volte ed è il grande grande pronipote della forma principale, come posso determinare quale sia la sua posizione sul mio intero schermo, non solo la sua posizione nel genitore immediato? Questo è per lo scopo di stampare un controllo particolare tramite uno screenshot (poiché per alcuni controlli DrawToBitmap non funziona correttamente).Ottenere la posizione di un controllo relativo all'intero schermo?

risposta

80

Stai cercando il PointToScreen method:

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

Nota che PointToScreen prende _client AREA_ coordinate, in modo da utilizzare questo codice in un form, per esempio, non avrebbe dato il risultato corretto. – rymdsmurf

+3

@rymdsmurf non so se ti capisco correttamente, ma se lo usi su un 'Form' (come' myForm.PointToScreen') e hai le giuste coordinate (da 'control.Location') ti darà le coordinate giuste sullo schermo. – Artholl

Problemi correlati