Quando apri un qualsiasi Form, devi prima crearne un'istanza, se non esiste già, e successivamente invocare il metodo Show.

Quando crei un'istanza del Form, memorizzi il riferimento all'oggetto creato all'interno di una variabile.

Supponendo che tu apra la finestra in questione da una voce di menu o un pulsante situato nella finestra principale del programma, in cui probabilmente risiede anche il codice necessario all'apertura, ti basta inserire nella classe del suddetto form principale un campo che contenga il riferimento alla finestra secondaria.

Il riferimento alla finestra secondaria è, inizialmente, impostato a null.

Quando crei l'istanza della finestra secondaria con new, memorizza il riferimento nel campo appena descritto; quando tale campo è diverso da null, quindi, significa che il Form è stato creato e quindi puoi provvedere a visualizzarlo senza crearne uno nuovo.

Ovviamente, dovrai fare in modo che dalla finestra secondaria sia possibile invocare un metodo o accedere al campo del form principale affinché tale riferimento venga posto nuovamente a null quando la finestra secondaria viene chiusa, affinché il form principale provveda a crearne una nuova istanza, trovando il riferimento a null, quando è necessario visualizzare nuovamente il Form.

Comprendo che il discorso è espresso in termini teorici, ma non ho il tempo di stendere codice.

Tuttavia, se ci sono termini non chiari o passaggi oscuri, basta chiedere e risponderò il prima possibile.

Ciao!