MyForm oForm = new MyForm(parm1, parm2);
oForm.Show();
But then that can cause complications later when the main form closes and you're trying to find and close all other open forms. So, we use a FormsHandler class which simply puts the form into a static ArrayList (with .Add(), .Remove() and .Close() static methods). So calling the form would be like this instead:MyForm oForm = new MyForm(parm1, parm2);
FormsHandler.Add(oForm);
oForm.Show();
And when you close your main form, you can simply call FormsHandler.Close() and it will loop through all the Forms in it's ArrayList and call each one's .Close() method.public class FormsHandler { #region Declarations private static ArrayList list = new ArrayList(); #endregion #region Methods public static int Add(object o) { return list.Add(o); } public static void Remove(object o) { list.Remove(o); } public static bool Close() { int nCount = list.Count; while (list.Count > 0) { ((Form)list[0]).Close(); if (list.Count == nCount) return false; else nCount = list.Count; } return true; } #endregion #region Properties public static ArrayList List { get {return list;} } #endregion }Hope that helps,