System.ObjectDisposeException выдается после вызова CloseC#

Место общения программистов C#
Anonymous
System.ObjectDisposeException выдается после вызова Close

Сообщение Anonymous »

Я создал форму для обработки входа в мое приложение и пытаюсь завершить работу приложения, если форма входа закрыта без входа в систему (например, нажатие Alt-F4). Для этого я вызываю Close() в главной форме, когда DialogResult.OK не возвращается, но получаю исключение, созданное в Main с помощью Application.Run.

Это для проекта, над которым я работаю. Пытался найти ответы и нашел фразу о вызове Application.Exit() в основной форме, но моя форма просто появляется снова.

Основная форма конструктор:

Код: Выделить всё

public Menu()
{
InitializeComponent();
Form login = new Login_Forms.Login();
Hide();
if (login.ShowDialog(this) != DialogResult.OK)
Close();
else
Show();
}

Main():

Код: Выделить всё

static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Menu());    // This line throws System.ObjectDisposedException
}
Сама программа работает, но выброшенное здесь исключение сводит меня с ума. Я ищу способ правильно закрыть основную форму, чтобы в Main не возникало исключение.

Подробнее здесь: https://stackoverflow.com/questions/560 ... -is-called

Вернуться в «C#»