tu dichiari il form come campo private nella Form A...
quando premi un button, fai
codice:
formSecondario=new TuaDll.FormB();
formSecondario.Show();
negli altri tasti che tu hai che aprono form di altre Dll o interni o della stessa dll...fai
codice:
if(formSecondatio.Visible=True)
{
//è attivo quindi non fai niente, o fai qualcosa che tu vuoi
}
else
{
//il form è stato chiuso
formSecondario.Dispose();
formSecondario=new AltraDll.AltroForm();
formSecondario.Show();
}
l'importante è ke nei form secondati, ci fai un Hide e non un close...intercetta l'evento closing, annullalo, ma nascondi il form...
dovrebbe essere tutto...