Depends what "it don't work" means, and how exactly you are trying to do things.
"It doesn't work" is probably the most useless problem report we get - and we get it a lot. It tells us nothing about what is happening, or when it happens.
So tell us what it is doing that you didn't expect, or not doing that you did.
Tell us what you did to get it to happen.
Tell us any error messages.
The better the information you give us, the better the help we can give you.
The way I would approach this is to have one from - the form that original opens when your app starts - open all the others, and take control of what happens when they are minimized (assuming that "minimized" means the same thing to you and I: reduced to the task bar but not closed).
When I created the form instance, I'd add two handlers: FormClosed (So I know it's supposed to be open or not) and Resize. In the later, I'd check the WindowState property of the form to see if it has been minimized:
private void MyOtherForm_Resize ( object sender , EventArgs e )
{
Form f = sender as Form;
if ( f != null && f.WindowState == FormWindowState.Minimized )
{
... restore or open the other form ...
}
}