winform в консольном приложении - PullRequest
0 голосов
/ 23 марта 2012

У меня есть консольное приложение, которое также может открывать winform при определенных условиях. Обработка (это утилита экспорта базы данных) и может быть выполнена через форму или командную строку. но форма всегда связана с командной строкой. Я имею в виду, что когда я закрываю консоль, форма также закрывается. Мое требование заключается в том, что при запуске формы командная строка закрывается сама по себе, не закрывая форму.

  [STAThread]
    public static void Main(string[] args)
    {

         if(hastolaunchform)
          {
                  Application.Run(new Form1());
           }

         else
           {
                       Console.WriteLine("started");
                        try
                        {
                            dataclass.extract();
                            console.writeline("finish");
                        }
                        catch (Exception e)
                        {

                            Console.WriteLine("An error occur");
                        }
             }

         }

1 Ответ

1 голос
/ 23 марта 2012

Здесь у вас есть приложение с графическим интерфейсом или , которого нет.

Вам нужна версия графического интерфейса пользователя, которую при желании можно запустить из CLI, т.е.быть другим exe-файлом или тем же exe-файлом с другими параметрами командной строки, хотя будьте осторожны с этим, в противном случае он может просто продолжать запускать другую версию самого себя, пока Windows не умрет.

По крайней мере, я думаю, что вы спрашиваете об этом.

Аргументы CLI

MyApp.Exe --GUI

- GUI будет отображаться в аргументах [1].

Так что-то вроде

if (args.Contains["--GUI"])
{
   Application.Run(new Form1());
}
else
{
  if (hastolaunchForm)
  {
     // use Process.start to run another version of your app with --GUI parameter
     // and close
  }
  else
  {
     // do console stuff.
  }
  }
}
...