It depends on when this data needs to be transferred to UserControl. Do events in the Form occur that will force data to be moved to UserControl? If so ... just grab your instance at this point and pull the data into UserControl via a public property.
If this is the case when the events are not used, or the form in one form or another "receives data", and then reveals the event on the form, such as ...
public event DataHandler ReceivedData;
... and allow UserControl or any other container to register for the event and receive data through your custom event arguments. Clicking an event in the UserControl and forcing the form to commit on the UserControl seems to be the opposite, since the form is the data initiator.
source share