2013-08-18 46 views
0

我有一個在窗體中打開的readstream。我正在閱讀該流,並將文本發送到其他表單的文本框。我希望在文本到達readstream後立即將文本更新到文本框。
代碼在第一種形式: - 在第二形式中定義>從該流中讀取並將文本發送到另一個表單的文本框?

f2.ShowDialog(); //f2 is second form's object 
while (true) 
{ 
    string inp_msg = sr.ReadLine(); 

    f2.set_text(inp_msg); 
    this.Refresh();    
} 

set_text功能: - >

public void set_text(string msg) 
{ 
    //MessageBox.Show(msg);    
    textBox1.Text = textBox1.Text + msg + "\r\n"; 
    //Application.DoEvents(); 
} 

的問題是,該文本框沒有更新。

+1

您的'while'循環會永久運行,在循環中的某些條件中添加一些'break'。 –

+0

它用於連續讀取讀取流 – algorithmist

+0

如果是這樣,您需要讓'UI線程'免費,您應該創建另一個線程來讀取流。 –

回答

0

而不是「f2.ShowDialog()」,嘗試調用:

f2.Show(); 

當你調用方法「的ShowDialog()」,不執行該語句後的代碼,直到關閉窗體。

有關更多詳細信息,請參閱http://msdn.microsoft.com/en-us/library/c7ykbedk.aspx

+0

我試過這個,但程序掛起並顯示「not responding」對話框 – algorithmist

+0

King King評論道,你正在無限循環中運行。你需要休息一下;語句來停止while循環一遍又一遍地循環。 – Rohan

+0

我已經嘗試過沒有while循環也。它也行不通 – algorithmist

相關問題