web-dev-qa-db-ja.com

Windowsフォーム.. console.writeline()コンソールはどこですか?

Windowsフォームソリューションを作成し、呼び出したクラスのコンストラクターで

Console.WriteLine("constructer called")

しかし、コンソールではなくフォームのみを取得しました。出力はどこにありますか?

41
SmartestVEGA

プロジェクト設定で、アプリケーションタイプをコンソールとして設定します。次に、コンソールウィンドウとWindowsフォームを取得します。

57
Tomas Voracek

また、 Debug.WriteLine の使用を検討する必要があります。これがおそらく探しているものです。これらのステートメントは、アプリケーションのトレースリスナーに書き込まれ、 Visual Studioの出力ウィンドウ で表示できます。

Debug.WriteLine("constructor fired");
46
BrandonZeider

Visual Studioでアプリケーションを実行すると、出力ウィンドウにコンソール出力が表示されます。

デバッグ->ウィンドウ->出力

WinFormsアプリケーションから診断データを出力する好ましい方法は、 System.Diagnostics.Debug.WriteLine または System.Diagnostics.Trace.WriteLine 出力をどのように、どこで出力するかをより詳細に設定できるため。

15
Albin Sunnanbo

他の答えが述べているように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();

開くときに特定のスイッチを指定すると、アプリケーションウィンドウの代わりにコマンドプロンプトを表示するためにこれを使用することがあります。

誰かがそれを必要とする場合、この同様の質問にはさらにいくつかのアイデアがあります:
WinformsのConsole.WriteLine()の目的

3
noelicus