Как закрыть основную форму, не закрывая приложение?

Что я хочу сделать:
- & gt; Открыть форму MDI
-> Закрыть основную форму проектов
-> Не закрывая приложение

Что я сделал:

frmMain fm = new frmMain();
fm.Show();
this.Close()

Any help would be appreciated! :)

Ответы на вопрос(3)

Попробуйте сделать это:

frmMain fm = new frmMain();
this.Hide();
fm.Show();

Или же:

frmMain fm = new frmMain();
this.Hide();
fm.ShowDialog();
this.Show();

Последний откроет окно, и как только оно закроется, снова появится предыдущее окно.

 12 июн. 2013 г., 06:12
Спасибо, это сработало отлично и так же просто, как и другие ответы. Спасибо!
Решение Вопроса

но оставить приложение работающим, вы можете заставить класс по умолчанию запускать контекст приложения:

using(MyContext myContext = new MyContext())
{
    Applicaton.Run(myContext);
}

гдеMyContext наследует отApplicatonContext.

Ваш контекст приложения может загружать и закрывать формы по мере необходимости. Я делаю это с одним проектом, где у меня есть контекст запуска формы входа. Только после успешного завершения главная форма загружается. Я также разрешаю & quot; выход из системы & quot; из программы, которая будет обработана путем завершения основной формы и перезагрузки формы входа в систему.

РЕДАКТИРОВАТЬ: Из комментариев, может быть, все, что вы ищете, это .Hide (). Это не приводит к тому, что ваша форма выгружается, и вызов .Show () восстанавливает ее (например, вы можете использовать таймер или другую форму, содержащую ссылку на вашу основную форму, чтобы выполнить вызов). Я предпочитаю использовать ApplicationContext, потому что он берет на себя ответственность за сохранение вашей программы в памяти вдали от элемента пользовательского интерфейса, который пользователь может попытаться закрыть.

 12 июн. 2012 г., 22:25
Разве это не усложняет ситуацию? В примере окна входа в систему вы можете просто открыть его в диалоговом окне ctor главного окна, даже до инициализации компонентов и т. Д. Я действительно думаю, что все, что он ищет, этоHide(), но я хотел бы услышать, почему этого недостаточно.
 Mohammad Areeb Siddiqui12 июн. 2012 г., 22:23
я не поняла! я не знаю о контекстах в C #! пожалуйста, вы можете дать другой способ?
 12 июн. 2012 г., 22:25
Контекст - это просто оболочка для управления формами вашего проекта. Если ваш класс по умолчанию для проекта вызывает его, как отмечено, вы можете запустить любые формы или запустить любые фоновые процессы оттуда. Увидеть:c-sharpcorner.com/UploadFile/johnconwell/… для примера этого в использовании.
 12 июн. 2012 г., 22:29
@YoryeNathan, исходя из его ответа, он, вероятно, слишком усложняет ситуацию, но я ошибочно предположил, что он знал о .Hide () и искал контейнер кода.

Что я сделал, чтобы обойти это:

this.Hide()

Вероятно, не лучший способ сделать это, но все же.

Вы могли бы даже вернуть его, позвонив

this.Show()

Ваш ответ на вопрос