0

ここにサンプルがあります

ここに画像の説明を入力

好奇心旺盛です。C# は初めてですが、Java ゲーム用のサーバーを開発するために C# を使用することにしました。単純に、素敵なサーバー GUI が必要だったからです。スイング...

4

2 に答える 2

4

私は週末に同様のプロジェクトを行いました。このリンクを使用して、すべてのコンソールデータをテキストボックスに転送しました。微調整を加えて、同様のコントロールを使用できます。

public class TextBoxStreamWriter : TextWriter
{
    TextBox _output = null;

    public TextBoxStreamWriter(TextBox output)
    {
        _output = output;
    }

    public override void Write(char value)
    {
        base.Write(value);
        _output.AppendText(value.ToString()); // When character data is written, append it to the text box.
    }

    public override Encoding Encoding
    {
        get { return System.Text.Encoding.UTF8; }
    }
}

Write(...)とWriteLine(...)はすべてWrite(char)に細流化​​するため、オーバーライドする必要があるのはこのメソッドだけです。

私の例では、フォームに、フォーム内のプライベートTextBoxを公開するパブリックTextBoxプロパティも必要でした。

TextWriter consoleRedirect = new Tools.TextBoxStreamWriter(consoleForm.TxtOuputDisplay);
Console.SetOut(consoleRedirect);
于 2013-02-26T03:06:19.273 に答える
2

さて、私は前のコメントを見る前にすでにこれを書いていました. でも、せっかくなので投稿させていただきます。

public void WriteLog(TextBox tb ,string log)
    {
        tb.AppendText(log + "\n");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        WriteLog(textBox1, "[App]: This is a log string");
        WriteLog(textBox1, "[App]: Another log string");
        WriteLog(textBox1, "[App]: Yet another etc etc.");
    }

textBox1 は、黒の背景色と青の前景テキストを持つ複数行のテキスト ボックスです。上記のコメントはより洗練されたソリューションですが、手早く簡単なものが必要な場合はこれで十分です。画像をインラインで投稿するのに十分な担当者がいませんが、これがどのように見えるかです. http://imageshack.us/photo/my-images/198/logwindow.jpg/

于 2013-02-26T03:30:34.320 に答える