Una cosa di questo tipo

codice:
// all'esterno delle void
private form frm;

// all'avvio della maschera principale
private void MiaMascheraPrincipaleDelProgramma_Shown(object sender, EventArgs e)
        {
  
            // imposto oggetto form
            frm = new Form3();
        }

// su timer 
private void timer1_Tick(object sender, EventArgs e) 
     {
       if (textBox1.Text == "Andrea")
       if (textBox2.Text == "Pirola")
           progressBar1.PerformStep();
       if (progressBar1.Value == progressBar1.Maximum)
         frm.Show();
     }
In pratica dichiari frm all'esterno delle void come oggetto maschera, poi lo inizializzi con new quando lo vuoi creare (una volta sola), poi su timer lo usi come ti serve.