I *think* I see what you mean. Make the hidde form(from here referred to as formH) a member variable of the form with the open button(from here referred to as formO). That way, only one formH is ever declared and used, and is only destroyed when you telll it to, or close formO.
To do this, put a declaration for formH within the formO class braces, but not within any method blocks. To make the code easier to understand, it's mostly put directly before the formO() constructor.
Now that you have made a single formH available throughout the entire formO, when the open button is pressed, you need to pull it up. This code is pretty much self-explanatory:
//assuming you declared the formH as a variabled named formHInstance....
if (formHInstance == null)
{
formHInstance == new formH();
}
formHInstance.Show();