Windowsフォームソリューションを作成し、呼び出したクラスのコンストラクターで
Console.WriteLine("constructer called")
しかし、コンソールではなくフォームのみを取得しました。出力はどこにありますか?
プロジェクト設定で、アプリケーションタイプをコンソールとして設定します。次に、コンソールウィンドウとWindowsフォームを取得します。
また、 Debug.WriteLine の使用を検討する必要があります。これがおそらく探しているものです。これらのステートメントは、アプリケーションのトレースリスナーに書き込まれ、 Visual Studioの出力ウィンドウ で表示できます。
Debug.WriteLine("constructor fired");
Visual Studioでアプリケーションを実行すると、出力ウィンドウにコンソール出力が表示されます。
デバッグ->ウィンドウ->出力
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();
開くときに特定のスイッチを指定すると、アプリケーションウィンドウの代わりにコマンドプロンプトを表示するためにこれを使用することがあります。
誰かがそれを必要とする場合、この同様の質問にはさらにいくつかのアイデアがあります:
WinformsのConsole.WriteLine()の目的