окна формы .. console.writeline () где консоль? - PullRequest
40 голосов
/ 18 апреля 2011

Я создал решение для формы Windows и в конструкторе класса, который я назвал

Console.WriteLine("constructer called")

Но я получил только форму, а не консоль ... так где же вывод?

Ответы [ 4 ]

56 голосов
/ 18 апреля 2011

В настройках проекта установите тип приложения как Консоль. Тогда вы получите окно консоли и форму Windows.

46 голосов
/ 18 апреля 2011

Вам также следует рассмотреть возможность использования Debug.WriteLine , это, вероятно, то, что вы ищете. Эти операторы записываются в прослушиватели трассировки для вашего приложения и могут быть просмотрены в окне вывода Visual Studio .

Debug.WriteLine("constructor fired");
15 голосов
/ 18 апреля 2011

Если вы запустите приложение в Visual Studio, вы увидите вывод консоли в окне вывода.

Отладка -> Windows -> Вывод

Обратите внимание, чтопредпочтительным способом вывода диагностических данных из приложения WinForms является использование System.Diagnostics.Debug.WriteLine или System.Diagnostics.Trace.WriteLine, поскольку они более настраиваемы, как и где вы хотите выводить.

3 голосов
/ 23 августа 2016

Как уже говорилось в других ответах System.Diagnostics.Debug.WriteLine - это правильный вызов для отладки сообщений. Но чтобы ответить на ваш вопрос:

Из приложения Winforms вы можете вызвать окно консоли для взаимодействия, как это:

using System.Runtime.InteropServices;

...

void MyConsoleHandler()
{
    if (AllocConsole())
    {
        Console.Out.WriteLine("Input some text here: ");
        string UserInput = Console.In.ReadLine();

        FreeConsole();
    }
}


[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool AllocConsole();

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool FreeConsole();

Я иногда использую это, чтобы вызвать командную строку вместо окон приложения, когда открываются определенные ключи.

В этом похожем вопросе есть еще идеи, если кому-то это нужно:
Какова цель Console.WriteLine () в Winforms

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...