In answer to your question about referencing a form thats not active, you would need to use the following code:
Code:
            foreach (Form1 myForm in Application.OpenForms)
            {
               //basing it on only having 1 form1 open
                int myVar = myForm.Varible1;
            }
If your form is using variables that are used globally then maybe you should think about storing them in a shared class...

Woka