Forse nessuno ti ha risposto (con successo) perche' non hai spiegato sufficientemente il problema e il contesto in cui operi.

Tippolo ti ha dato codice non C#, ma probabilmente non ha tutti i torti.

Inserisci nella classe del form1 un membro per istanziare la classe del form2

Form2 frm;

e nell'evento Click del button, istanzia il form, lo visualizzi e nascondi quello attuale

codice:
            frm = new Form2();

            frm.Show();

            this.Hide();