2017-03-13 4 views
-2

私は2つのソリューションからアプリケーションを作成しました。 Visual BasicのC#で作られたコンソールアプリケーションです。VB.netからのデータをC#windowsフォームに出力

私はこのプログラムをWindowsフォームアプリケーションにリメイクしようとしていますが、すべての出力はConsole.WriteLine()コマンドを使用して行われます。 C#からの出力は、richTextBox.AppendText()で簡単に取得できます。

Visual Basicの部分から出力しようとすると、そのことがリファレンスであることがわかっているので、私はそれを行うことはできません。私はこれを解決するために何ができましたか?

+1

https://msdn.microsoft.com/en-us/library/system.console.setout(v=vs.110).aspx –

+0

コードにアクセスできますか?他の2つのアプリケーションを参照として持つ新しいアプリケーションを作成しているのですか、またはアプリケーション内でexesとして起動していますか? – pstrjds

+0

コードにアクセスできます – atilas1

答えて

-1

あなたは、この(それはC#でそれを示していますが、それはVisualBasicのにかなり似ています)のようなVisualBasicの部分でそれを行うことができます:StringBuilderを取ると、そこにすべてのあなたの古い文を追加し、1回とTextBoxにそれを置く:

//// Your old code: 
//Console.WriteLine("xyz1"); 
//// Do anything... 
//Console.WriteLine("xyz2"); 
//// Do anything... 
//Console.WriteLine("xyz3"); 
//// Your new code: 
StringBuilder sb = new StringBuilder(); 
sb.AppendLine("xyz1"); 
//// Do anything... 
sb.AppendLine("xyz2"); 
//// Do anything... 
sb.AppendLine("xyz3"); 
this.textbox1.Multiline = true; 
this.textbox1.Text = sb.ToString(); 

=>あなたはConsole.WriteLine()メッセージの結果のみを必要とする場合は、このコードは、動作します:Making a splash screen、またはHow to build splash screen in windows forms application?または多分ProgressBar:あなたはすぐにメッセージが必要な場合、あなたはおそらく、スプラッシュスクリーンが必要になります。このようなあなたを助けることができました:How to use WinForms progress bar?

+0

'List'ではなく、全てのもの(.Netでは一般的に推奨されていない文字列に+ =を含む)を組み合わせると、これは' AppendLine'を呼び出す 'StringBuilder'として優れています。 – pstrjds

+0

'List'にelemetsがたくさんある場合は、パフォーマンス上の問題はありません。パフォーマンス問題はありません。でも、コードを変更して、StringBuilderを使用しています。 – Adelphos

+0

私の以前のコメントに対するあなたの応答 - 問題は必ずしも+ =のパフォーマンスではなく、リストを使って文字列を保持していたので、それらをループして最終的な文字列にすることができました。 StringBuilderがこれらのタイプの状況用に設計されている場合。 2 - メッセージにすぐにメッセージが必要な場合、OPにスプラッシュ画面またはプログレスバーが必要なのはなぜですか?到着時に必要な場合は、イベントを発生させるのに適した場所になり、消費者はそのイベントのハンドラを登録し、生成されたメッセージを消費することができます。 – pstrjds

関連する問題