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

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

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

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

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

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

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


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

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

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы