Как создать экземпляр формы, пока основная форма все еще реагирует

#c# #winforms

#c# #winforms

Вопрос:

Я использую .Net Framework 4.0 и C #. Я хочу динамически создавать экземпляр формы в своем коде, пока основная форма остается отзывчивой. Является ли создание нового потока и вызов Application.Run(newForm) единственным способом сделать это? Это просто выглядит как небольшая путаница для такой простой вещи. Я думал, что это должно быть настолько распространено, что фреймворк должен иметь какую-то встроенную функциональность для этого.

Комментарии:

1. Как вы показываете Form , с помощью ShowDialog() или Show() ?

Ответ №1:

Вам не нужен другой поток для создания новой формы, и не вызывайте Application.Run второй раз. Пока вы не делаете ничего, что блокирует пользовательский интерфейс (и вы никогда не должны этого делать), обе формы будут работать просто отлично.

 MyForm form = new MyForm();
form.Show();
  

Если вы вызовете ее ShowDialog вместо Show из своей первой формы, ваша первая форма будет заблокирована.