アプリケーションをコンソール アプリまたは Windows フォーム アプリとして実行できるという興味深いジレンマがあります。
私は自分のアプリケーション全体にこのような大量のコードを書きたくないので:
If ( IsConsoleApp() )
{
// process Console input and output
}
else
{
// process Windows input and output
}
これを防ぐために、TextReader と TextWriter インスタンスを渡すことができる 2 つのメソッドを作成し、その後これらを使用して入力と出力を処理することにしました。
public void SetOutputStream( TextWriter outputStream )
{
_outputStream = outputStream;
}
public void SetInputStream( TextReader inputStream )
{
_inputStream = inputStream;
}
// To use in a Console App:
SetOutputStream( Console.Out );
SetInputStream( Console.In );
コンソール ウィンドウにテキストを表示するには、次のようにするだけです。
_outputStream.WriteLine( "Hello, World!");
テキストは魔法のようにコンソールにリダイレクトされます。
さて、私の問題は、Windows アプリケーションで同様のことを行うにはどうすればよいかということです。_outputStream
読み取り専用のテキスト ボックス コントロールを含むフォームを作成しましたが、その内容をこのテキスト ボックスにリアルタイムでリダイレクトしたいと考えています。
また、_inputStream
別のテキスト ボックス コントロールのコンテンツを含めて、アプリがテキスト ボックスを直接ではなく、このストリームから読み取ることができるようにします。
前もって感謝します。