2016-03-08 82 views
-2

我有一個主窗體,其中有一個文本框和一個按鈕。然後我有一個單一的按鈕的第二種形式。在程序啓動時,MainForm被初始化,當我點擊按鈕時,第二個窗體出現(ShowDialog())仍然保持打開MainForm。C#傳遞窗體之間的數據沒有ShowDialog()

所以我有這兩種形式相互打開。我想要的是,當我點擊按鈕時,按鈕會向MainForm發送一個字符串。 MainForm將獲取文本並將其顯示在文本框中。但是我希望立即做出改變 - 不必隱藏和再次顯示MainForm。當按下第二個窗體上的按鈕時,有點像刷新它。

我該怎麼做?

注意:將發送到MainForm的文本以第二種形式進行聲明很重要。 (在我的程序中,文本在第二個表單級別上動態地更改)

+1

看到答案在此鏈接:http://stackoverflow.com/questions/280579/how-do-i-pass-a-value-from-a-child-back-to-the-parent-表格 – Harsh

+0

等一下,爲什麼你有第二種形式,如果你想在'Form1'中顯示它 –

回答

0

如果我正確理解,您需要在winform中創建一個屬性。 例如:

public partial class frmLogin : Form 
    { 
     public bool LoggedIn 
     { 
      get { return loggedIn; } 
     } 

     public frmLogin() 
     { 

      InitializeComponent(); 


     } 
} 

// Now, in your forms, you can do. 
frmLogin frm = new frmLogin(); 

frm.ShowDialog(); 

var value = frm.LoggedIn; 
1

嘗試發送的文本框爲第二形態的構造,第二種形式,當你給點擊按鈕,改變文本框的Text屬性,它會出現,如果會被更新因爲他們指的是同一個地方。

public partial class Form1 : Form 
{ 
    public Form1(TextBox txt) 
    { 
     InitializeComponent(); 

     this.txt = txt; 
    } 

    //variable 
    TextBox txt = null; 

    private void button1_Click(object sender, EventArgs e) 
    { 
     txt.Text = "Your text"; 
    } 
}