Начиная форму в консольном проекте C #? - PullRequest
4 голосов
/ 01 ноября 2010

Мой проект - консольный клиент.Я начинаю в консоли, а затем отображаю форму.Я использую приведенный ниже код для отображения пустой формы (я добавлю элементы управления позже) для пользователя.Но форма отображается, но она застряла (не активна).Что мне делать?

Console.WriteLine("Starting form");
Console_Client.Main mainform = new Main();
mainform.Show();
Console.ReadLine();

Ответы [ 2 ]

9 голосов
/ 01 ноября 2010

Попробуйте ShowDialog().

Проблема в том, что вы не запускаете цикл сообщений.Есть два способа начать один.ShowDialog() имеет один интегрированный, так что будет работать.Альтернативой является использование Application.Run() либо после вызова Show(), либо с формой в качестве параметра.

  1. ShowDialog():

    mainform.ShowDialog();
    
  2. Application.Run() без формы:

    mainform.Show();
    Application.Run();
    
  3. Application.Run() в форме:

    Application.Run(mainform);
    

Всеэти работы.

5 голосов
/ 01 ноября 2010

Вам необходимо запустить полное приложение, как обычно это делает приложение Windows Forms:

 Console.WriteLine("Starting form");
 Console_Client.Main mainform = new Main();

 // This will start the message loop, and show the mainform...
 Application.Run(mainform);

 // This won't occur until the form is closed, so is likely no longer required.
 // Console.ReadLine();
...