11 giugno 2006

VB.NET : Calcolare la posizione assoluta di un controllo in una form

La proprietà Location di un oggetto System.Windows.Forms.Control o di un oggetto System.Windows.Forms.Form restituisce la posizione fisica dell'oggetto stesso rispetto al padre.
Per poter ricavare la posizione assoluta rispetto alla form principale oppure allo schermo si può ricorrere alla seguente routine:


Private Function CalculateXPosition(ByVal Frm As System.Windows.Forms.Form, ByVal Ctrl As System.Windows.Forms.Control) As Integer
 If (Ctrl.Parent Is Frm) Then
  CalculateXPosition = Ctrl.Location.X
 Else
  CalculateXPosition = Ctrl.Location.X + CalculateXPosition(Frm, Ctrl.Parent)
 End If
End Function


Il parametro Frm può essere la form principale della nostra applicazione oppure Nothing se si vuole calcolare la posizione assoluta rispetto allo schermo.

In modo analogo, utilizzando la proprietà Location.y, si può creare la function per il calcolo della coordinata y.

Nessun commento: