2015-03-11 4 views
0

код в Form1.cs: В котором я спрятал Form1.cs затем показал Form2.csWindows Forms Application - создание окна ошибки обрабатывать

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.Hide(); 
    Form2 f2 = new Form2(); 
    f2.Show(); 
} 

Код в Form2.cs: В котором, I Спрятал Form2.cs и попытался показать Form1.cs, затем Ошибка при создании дескриптора окна появилась во время выполнения.

private void Form2_Load(object sender, EventArgs e) 
{ 
    this.Hide(); 
    Form1 f1 = new Form1(); 
    f1.Show(); 
} 
+2

Вы создаете * новый экземпляр формы Form1. Который получает событие Form1_Load для повторного запуска. Что создает новый экземпляр Form2, поэтому событие Form2_Load снова срабатывает. Что создает новый экземпляр Form1, поэтому событие Form1_Load снова срабатывает. Который создает новый экземпляр Form2, поэтому событие Form2_Load снова срабатывает. Который .... повторите ... повторите ... Kaboom! –

+0

Спасибо, ты как профайлер хахаха. –

ответ

1
  • При загрузке Form1, вы показываете новый, дополнительный Form2.
  • При загрузке формы 2 вы показываете новый, дополнительный Form1.

Это круг. Он создает новые Forms так быстро, как он получает, каждый Form1 Form2 и каждый Form2 - новый Form1, а затем он начинает круг снова, пока больше нет оконных ручек, чтобы создавать новые окна.

Я не уверен, что вы хотите делать, но это не способ сделать это. Опишите, что вы хотите сделать, и, возможно, мы сможем помочь.

+0

Я создаю приложение, которое пойдет в «MainForm», а затем загрузит/проверит «LicenseForm»; если Лицензия прошла успешно, я вернусь, чтобы показать «Mainform» и спрятал Лицензионную форму. Ну, спасибо, у меня появилась идея. –

Смежные вопросы