A) Основной поток GUI будет бесконечно работать при вызове Application.Run, поэтому ваш цикл while никогда не будет достигнут
B) Вы никогда не захотите иметь такой бесконечный цикл (while(истинный) цикл) - это просто заморозит поток.Не совсем уверен, чего вы там добиваетесь.
Я бы создал и показал "основную" (начальную) форму в методе Main (как Visual Studio делает для вас по умолчанию).Затем в обработчике кнопок создайте другую форму и покажите ее, а также скрыв основную форму (не закрывая ее).Затем убедитесь, что основная форма отображается снова, когда эта форма закрыта через событие.Пример:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 otherForm = new Form2();
otherForm.FormClosed += new FormClosedEventHandler(otherForm_FormClosed);
this.Hide();
otherForm.Show();
}
void otherForm_FormClosed(object sender, FormClosedEventArgs e)
{
this.Show();
}
}