2014-03-04 66 views
-4

我對C#相當陌生,所以請對我輕鬆一點。使用C#我想將文本發送到另一個表單的文本框

我有form1作爲主窗體和另一種形式稱爲「調試」。調試表單有兩個文本框,dbgBox1dbgBox2。我試圖做的是,當debug.Visible == true,從form1更新文本框。我不希望這隻發生在按鈕點擊等上。 例如,很容易更新form1上的文本框(通過textbox1.Text =「」;)我如何做類似的事情,但更新中的文本框調試表單?

This thread似乎很接近,但不足以讓我理解。

+3

有數以千計的關於這StackOverflow.Please問題,首先使用谷歌。 –

+0

同樣重複[this](http://stackoverflow.com/questions/10722461/how-to-pass-textbox-data-between-two-forms)和[this](http://stackoverflow.com/questions/17667629/how-do-i-pass-a-string-value-from-a-textbox-between-forms)以及更多.. –

+0

@ Selman22:我知道有成千上萬個類似**的問題,但是我沒有發現任何問題。 –

回答

0

這是一個很好的做法,實現從外部改變窗體狀態的方法,所以你的表單會更少耦合。直接訪問其他表單的屬性通常不是一個好主意,包括主表單。

public partial class debug : Form 
{ 
    public debug() 
    { 
     InitializeComponent(); 
    } 

    public void setdbgBox1Text(string text) 
    { 
     dbgBox1.Text = text; 
    } 

} 

然後你可以使用:

debug deb = new debug(); 
    deb.Show(); 
    deb.setdbgBox1Text("aaa"); 
+0

以上並不完全回答我的問題。我不想通過單擊按鈕發送文本。例如,我想要創建新窗體,使其可見,然後從Form1連續傳遞文本(直到關閉調試窗體)。 –

+0

但是,您可以在任何位置使用deb.setdbgBox1Text(「aaa」),以便您可以不斷更新Form1中的調試窗體。只需使「debug deb = new debug();」一個Form1成員。每次調用此方法時,調試窗口都會更新。 –

+0

啊是的。我誤解了!你的例子正是我所需要的。 –

1

如果你從一個形式實例2號形式自己,你可以通過這樣的參考更新:

formDebug fd = new formDebug(); 
fd.Show(this); 

fd.dbgBox1.Text = "Box 1 Text"; 
fd.dbgBox2.Text = "Box 2 Text"; 

fd.Update(); 
相關問題