Я создал решение формы окна и в конструкторе класса, который я назвал
Console.WriteLine("constructer called")
Но я получил форму, а не консоль.. так где же результат?
Я создал решение формы окна и в конструкторе класса, который я назвал
Console.WriteLine("constructer called")
Но я получил форму, а не консоль.. так где же результат?
В настройках проекта установите тип приложения как Консоль. Тогда вы получите окно консоли и форму Windows.
Вы также должны рассмотреть возможность использования Debug.WriteLine, вероятно, того, что вы ищете. Эти инструкции выписывают прослушиватели трассировки для вашего приложения и могут быть просмотрены в окне вывода Visual Studio.
Debug.WriteLine("constructor fired");
Если вы запустите приложение в Visual Studio, вы можете увидеть вывод консоли в окне вывода.
Отладка → Windows → Вывод
Обратите внимание, что предпочтительным способом вывода данных диагностики из приложения WinForms является использование System.Diagnostics.Debug.WriteLine
или System.Diagnostics.Trace.WriteLine
, поскольку они более настраиваются как и где вы хотите получить результат.
Как указывалось в других ответах, 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