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

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. В моем решении(solution) учавствуют несколько проектов(projects). 2 формы.То есть 2 исполняемых файла. Через 1 форму запускаю файл 2 формы и делаю ее невидимой. Подскажите пожалуйста как после этого действия сразу закрыть 1 форму.
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. В строке:
Application.Run(new Form1());
Вроде как форма еще не загрузилась. Мне надо чтоб форма сразу закрылась после выполнения этих действий. Пробовал таймеры,потоки Thread.Sleep, все равно не закрывает

Решение задачи: «Закрыть форму после выполнения программы»

textual
Листинг программы
ProcessStartInfo info = new ProcessStartInfo(processFileName)
            {
                WindowStyle = ProcessWindowStyle.Hidden
            };
            Proces = new Process
            {
                StartInfo = info
            };
            try { process.Start(); }
            catch (Exception) { MessageBox.Show("Не удалось запустить другую форму."); return; }
            this.Close();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы