Как запустить несколько модальных форм в последовательности в C #? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть метод RunForm (), который запускает модальное диалоговое окно для выполнения некоторой задачи:

    static void RunForm() {
        SomeForm    form = new SomeForm();
        Application.Run( form );
    }

Я хочу несколько раз вызвать RunForm () из точки входа STAThread:

    [STAThread]
    static void Main() {
        RunForm(); // Run form once
        RunForm(); // Run form twice
        RunForm(); // Run form etc.
    }

В какой-то момент форма вызывает "Close ()" для себя, и, к сожалению, поток приложения завершается, и любой последующий вызов RunForm () завершается немедленно ...

Но если я закрою модальное диалоговое окно вручную, нажав верхнюю правую красную кнопку с крестиком, последующие вызовы RunForm () будут работать правильно (т. Е. Поток приложения по-прежнему работает каким-то образом).

Как автоматически запустить несколько модальных диалогов в последовательности? (а в чем разница между закрытием вручную и программным вызовом метода Close ()?)

1 Ответ

0 голосов
/ 05 июля 2018

Application.Run(ApplicationContext) более вероятно подходит для использования нескольких форм, запустив всего один раз этот метод и обработав несколько форм открытия / закрытия из реализации контекста вашего приложения (как это описано в ссылка)

...