The best way to do this is to create delegates between the forms, so that when an event happens in form1, it can call a method in form2, passing the data needed to update itself. Solution 1 shows a way to do this, although the exact solution offered is horrible ( you should not expose controls on your form, only methods that allow you to make the changes you want to allow ), but it only works from the parent to the child. Delegates can be set up to work both ways. I'm not sure how having an interface implimented by the form class helps, as you still need to get the instance, but SA generally gives good advice, so I'd suggest reading his link, also.
A Beginner's Guide to Delegates[
^]