System.ObjectDisposedException генерируется после вызова Close - PullRequest
1 голос
/ 09 мая 2019

Я создал форму для обработки входа в свое приложение и пытаюсь закрыть приложение, если форма входа закрыта без входа в систему (например, Alt-F4-ing).Для этого я вызываю 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.

1 Ответ

2 голосов
/ 09 мая 2019

Вы вызываете Close() в конструкторе, прежде чем объект будет полностью создан.Переместите свой код в Form.Load ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...