Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2010, 10:14   #1
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
Вопрос Как в C# при закрытии главной формы не завершать программный поток?

Хочу реализовать программу примерно следующего вида:
1)открываем файл EXE=>запускается главная форма, которая предлагает выбрать учебную дисциплину(к примеру, "Компьютерная графика", "Объектно-ориентированное программирование" и т.д.);
2)выбрали дисциплину, затем нажали "Ok"=>главная форма закрылась и, открылась форма, к примеру, с "Компьютерной графикой", которая, в свою очередь предлагает запустить ту или иную задачу;
3)закрыли форму с выбранной дисциплиной и у нас закрывается все приложение.
А теперь вопрос: как в C# сделать так, чтобы поток не завершался после закрытия главной формы и, соответственно, не завершалась работа всей программы? Уж очень мне не хочется, чтобы первоначальная главная форма "висела" без надобности. Может быть в C# можно как-то динамически делать то одну, то другую форму главной?
Нашёл в сети предложение создавать отдельный экземпляр главной формы(относительно Form1 это пишется как-то так - Form1 CurMain Form1(); Application.Run(new CurMain()); ...; CurMain.Close()), но помоему при таком варианте создается "дубликат" Form1, что опять таки нехорошо, да и "эстетически" некрасиво.
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Mixim вне форума Ответить с цитированием
Старый 01.09.2010, 10:34   #2
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

При закрытии главной кнопочной формы приложение закроется в любом случае!
Если вам не нужно чтобы оно показывалось, тогда просто скройте его.
Если не хотите чтобы она была у вас скрытой может стоить подумать о выборе главной формы?..
Еще вариант: сделать отдельные процессы, но в этом случае не думаю что это будет лучшим решением.
PS. Остальные способы будут считаться извращенными и уже не будут являться красивым тоном.
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 01.09.2010, 19:03   #3
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

поставьте обработчик на событие close формы:

Цитата:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
this.hide();
e.Cancel();
}
что то типа такого. не уверен что всё корректно, но попробуйте.
Никки вне форума Ответить с цитированием
Старый 01.09.2010, 21:32   #4
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

приложение это
Код:
   static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1()); //а вот это форма

// после закрытия "главной" формы будет выполняться этот код
// например

           Application.Run(new Form2()); //вторая форма
        }
    }
остается только решить как передать данные между формами, поставить какой нибудь switch и запускать сколько угодно форм
m0nax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уничтожать созданные формы при закрытии? Как? TwiX Общие вопросы Delphi 4 09.04.2010 09:49
запуск процесса при закрытии формы RUSlan48 Общие вопросы Delphi 3 29.03.2010 21:49
При закрытии формы, закрываеться книга Excel Even Microsoft Office Excel 2 10.01.2010 12:38
Сворачивание в трей при закрытии формы xxxsas Общие вопросы C/C++ 0 22.01.2009 08:11
Как в дочерней форме узнать о закрытии главной CruelAssembler Общие вопросы Delphi 2 20.11.2008 19:27