У меня проблемы с пониманием того, как закрыть приложение winforms C # .NET.Я пытаюсь сделать следующее:
Показать форму, позволяющую пользователю настроить среду так, как он хочет. Если пользователь нажимает кнопку «ОК», выполните некоторую логику для настройки среды приложения.(создание объектов и т. д.) Если пользователь нажимает «Отмена» или закрывает окно, закройте приложение.
Проблема в том, что я вызываю форму настройки среды перед основной (1-й) формой.Это недавнее изменение требований, и мне не хотелось переписывать код, который у меня есть, с самого начала.
Код, который я имею (который должен иметь больше смысла, чем моя маленькая преамбула):
public MainForm()
{
InitializeComponent();
//Get the user to set-up the environment (load specific config files, etc)
environmentSetupForm newEnvrionmenSetupForm = new environmentSetupForm ();
if (newEnvrionmenSetupForm .ShowDialog() == DialogResult.OK)
{
newEnvrionmenSetupForm .Close();
//some logic based on what the user selected on the set-up form
}
else
{
//Since the user didn't set-up the environment correctly (there
//was a message box, informing them and giving them another
//shot at it), exit out of the application.
Application.Exit();
}
}
Моя единственная проблема заключается в том, что после Application.Exit () стек возвращается к Program.cs и выполняет
Application.Run(new MainForm());
Таким образом, основная форма (и приложение) выполняется независимо.Есть ли лучший способ сделать то, что я пытаюсь сделать?
Редактировать: для ясности мой код program.cs гласит:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace myNamespace
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}