Žal nisem nikoli delal windows aplikacij (samo web), tako da kak "best practice" nasvet ti ne morem dat.
Lahko bi naredil dve formi enako veliki in uporabil tole:
Form2 form2 = new Form2();
form2.Show();
this.Hide();
stem skriješ prvo formo in prikažeš drugo
pa na drugo formo bi dal še event, da če uporabnik zapre formo, da se cela aplikacija zapre, da nebi slučajno samo forme izginile proces bi pa ostal...
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
ampak kot sem že rekel, ne vem če je to najboljši način ker jaz vedno delam samo za web in je tam povsem druga logika