If you're trying to interact between two already loaded instances of different user controls I would possibly use an event. For example, when u2 button is clicked raise an event to the calling page, the calling page can then call the method in u2 as it already knows about it. Alternatively, you can create a property on u2 of type u1 and the consuming page could set the property on u2 to the instance of u1 on the page, u2 will then have access to u1 and its methods.