2013-02-26 36 views
-1

內部控制檯下面是一個axample好奇如何獲得Windows窗體

enter image description here

只是好奇,我是新用C#,但我決定用它來發展我的服務器我的Java遊戲只是因爲我想要一個很好的服務器gui,但我開始意識到這將與Swing一樣容易...

+0

這已被問過無數次,你問過之前做過搜索嗎? – 2013-02-26 02:58:01

回答

1

我在週末做了一個類似的項目,我用這個link來轉發所有控制檯數據都傳輸到文本框。您可以使用任何類似的控件進行小的調整。

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; } 
    } 
} 

所有的寫的(...)和WriteLine(...)涓滴寫(炭),所以它是一個你需要重寫的唯一方法。

我的例子要求窗體也有一個公開的TextBox屬性,它暴露了窗體中的私有TextBox。

TextWriter consoleRedirect = new Tools.TextBoxStreamWriter(consoleForm.TxtOuputDisplay); 
Console.SetOut(consoleRedirect); 
+0

嗨無限的可能性,它在StackOverflow(和超級用戶)的習慣回答包括一個鏈接的內容摘要或專門回答問題的高光。 SE網站的目標是成爲未來幾年知識和答案的資源。只有鏈接回答,操作者必須挖掘另一個資源以找到他/她可能不確定的答案。最重要的是,如果您的鏈接永遠不會中斷,那麼未來訪問此頁面的任何人都無法回答您的問題。考慮對您的答案進行編輯以添加更多詳細信息。祝你好運! – 2013-02-26 03:15:07

+0

@JeremyThompson我試圖提供我的例子和一個簡短的解釋,隨時編輯更多,如果你可以/需要。 – 2013-02-26 03:22:37

1

那麼我在看到之前的評論之前已經寫了這個。但是因爲我花時間我會發布它。

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/