Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 16

Закрыть форму после выполнения программы

26.05.2011, 08:32. Показов 5604. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
В моем решении(solution) учавствуют несколько проектов(projects).
2 формы.То есть 2 исполняемых файла.
Через 1 форму запускаю файл 2 формы и делаю ее невидимой.
Подскажите пожалуйста как после этого действия сразу закрыть 1 форму.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
namespace Invisible
{
    public partial class Form1 : Form
    {
        private const string processFileName = "Form2.exe";
        public readonly Process Proces;
        public Form1()
        {
            InitializeComponent();
            
            ProcessStartInfo info = new ProcessStartInfo(processFileName)
            {
                WindowStyle = ProcessWindowStyle.Hidden
            };
            Proces = new Process
            {
                StartInfo = info
            };
 
            if (Proces.Start())
            {
 
                this.Close();
            }
 
            
        }
 
        
        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }
 
    }
}
При нажатии на кнопку нормально все работает. а при вызове из Form1 ошибка в Program.cs
An unhandled exception of type 'System.ObjectDisposedException' occurred in System.Windows.Forms.dll

Additional information: Cannot access a disposed object.

В строке:
C#
1
Application.Run(new Form1());
Вроде как форма еще не загрузилась.
Мне надо чтоб форма сразу закрылась после выполнения этих действий.
Пробовал таймеры,потоки Thread.Sleep, все равно не закрывает
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2011, 08:32
Ответы с готовыми решениями:

Привязать запуск программы к кнопке "Запустить игру" и закрыть программу сразу после выполнения
Доброго времени суток. Есть задача: нужно привязать запуск программы к кнопке "Запустить игру" и закрыть программу сразу после...

Как закрыть форму сразу после выполнения процедуры
Видимо я что-то не правильно понимаю. Есть у меня 2 формы, Form1 и Form2, на From1 1 кнопка, которая открывает форму2 командой...

Закрыть консоль после выполнения программы
Здравствуйте. Как сделать, чтобы консоль закрывалась после выполнения программы?

5
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
26.05.2011, 09:43
а ты знал, что две формы можно сделать в рамках одного проекта, а не городить восемь?
но если ты хочешь пользоваться именно своим вариантом, тогда сделай например так:
1) убери
вот эту
C#
1
if (Proces.Start())
бяку - у тебя в таком виде даже компилиться не должно по идее
2) свой код делай не в конструкторе формы, а в событии Load например...у тебя эксепшн вылетает как раз по тому, что форма еще до конца не инициализирована, а ты ее уже убить пытаешься...
3) воспользуйся такой конструкцией (не забывай, что весь твой код в событии Load лежать должен):
C#
1
2
3
4
5
6
7
8
9
10
11
ProcessStartInfo info = new ProcessStartInfo(processFileName)
            {
                WindowStyle = ProcessWindowStyle.Hidden
            };
            Proces = new Process
            {
                StartInfo = info
            };
            try { process.Start(); }
            catch (Exception) { MessageBox.Show("Не удалось запустить другую форму."); return; }
            this.Close();
это лишь пример...можешь придумать что-то свое...


далее, моя очередь задавать вопросы:
1) ты что там пишешь такое, что тебя при запуске одного приложения надо тут же закрывать его и запускать другое...вирусня шоле?
2) или все-таки это ты в посте объяснил всё неправильно и на самом деле тебе нужно сделать по другому: открыть вторую прогу из первой, подождать, пока вторая закончит выполнение и только после этого закрыть первую?
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
26.05.2011, 11:01
в такой форме вообще смысла нет, проще сделать отдельную функцию в Program и вызвать ее перед открытием второй формы
0
54 / 29 / 7
Регистрация: 28.02.2011
Сообщений: 105
14.12.2011, 13:14
вопрос немного не по теме но всеже:
у меня есть form1 и form2.
по нажатию form1.button1 я открываю form2. в form2 есть переменная (x), которая при загрузке form2 получает значение.
и по нажатию form1.button2 передается x в form1.label.text.
но после закрытия form2 мне нужно, чтобы эта переменная опять стала неопределенна (её значение). а значение так и остается. как удалить form2 и все данные которые были с ней связанны?
можно конечно сделать обработчик события закрытия form2, но наверняка же есть простой способ?
0
 Аватар для Mr.kto
104 / 105 / 18
Регистрация: 18.08.2012
Сообщений: 308
14.12.2011, 13:24
this.close()
0
54 / 29 / 7
Регистрация: 28.02.2011
Сообщений: 105
14.12.2011, 13:31
Цитата Сообщение от Mr.kto Посмотреть сообщение
this.close()
значение остается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2011, 13:31
Помогаю со студенческими работами здесь

Закрыть окно fancybox после успешного выполнения
Подскажите как сделать? У меня есть форма обратной связи - всплывающее модальное окно, реализованное с помощью fancybox. Данные из этого...

Как закрыть граф. модуль во время выполнения программы
Как закрыть граф. модуль во время выполнения программы? Я написал большой код, но забыл сохранить его и нажал запустить. Код содержит ...

После выполнения всех команд закрыть процесс по PID
Помогите пожалуйста, Есть скрипт Vbs 'Запускаю появляется процесс mshta.exe нужно закрыть окно именно ads.hta так как существует и...

Закрыть экземпляр Wscript.exe после выполнения скрипта
Как закрыть экземпляр Wscript.exe после выполнения скрипта? Доброго времени суток! Запускаю Outlook VBS скриптом. Почтовый клиент...

Результат выполнения программы в консоли пропадает после выполнения скрипта
нужно отпарсить файл , но мне надо видеть что выводит сценарий , иначе мне его неотладить. Запускаю файл вот так python index.py


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru