LOCAL lnI IF NOT EMPTY(This.BoundField) FOR lnI = 1 TO This.Parent.ControlCount IF ; TYPE("This.Parent.Controls(lnI).ControlSource") = "C" AND ; UPPER(ALLTRIM(This.Parent.Controls(lnI).ControlSource)) == UPPER(ALLTRIM(This.BoundField)) This.BoundObj = This.Parent.Controls(lnI) EXIT ENDIF NEXT ENDIFWhy do I suggest this approach? 1st of all, if you change the name of a control, by switching from a textbox to a combobox for example, you don't need to do any extra work. Second, you can just call this method in the label methods that need to refer to the object so you don't have extra object references floating around. Third, this approach isn't dependent on the instantiation order. If you just use an object reference as you've outlined, you're going to have to be very careful when you place your labels and controls on your forms. If the label is instantiated before the control, you're going to get an error when the BoundObj property is evaluated because it doesn't exist yet.