Как мне обрабатывать аргументы командной строки в Winforms, если я не хочу загружать основную форму?

Я хочу создать приложение, которое ведет себя следующим образом:

  1. При отсутствии аргумента отображается основная форма
  2. При аргументе «а» выполняется работа, но основная форма не загружается.
  3. По аргументу «b» форма загружается с использованием переданного аргумента (загрузить этот документ)

Для 1 и 3 я могу обрабатывать аргументы в конструкторе формы следующим образом:

public ConfigurationActionManagerForm()
{
    InitializeComponent();
    Environment.GetCommandLineArgs();
    // do stuff with that argument
}

Но этот подход не позволяет мне применить поведение 2. в списке.

В program.cs я могу отредактировать его для обработки аргументов еще до создания формы, но каков правильный подход к использованию Application.Run () , если я не не хотите сдавать анкету? Как я собираюсь сообщить экземпляру класса Program , что мне нужно завершить работу, или показать сообщение о том, что что-то пошло не так, или даже показать небольшой значок на панели задач, что процесс делает что-то (подумайте об этом как о процессе распаковки) .

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new ConfigurationActionManagerForm());
}

Будет ли этот подход MSDN правильным для моего приложения?

8
задан Odys 26 October 2011 в 11:15
поделиться