2015-12-12 74 views
0

我創建了2個窗體(窗體1和窗體2)。在form1中,按f5功能鍵它將顯示錶單2.然後,我想將值傳遞給form1,並在按鈕點擊時關閉form2。如何將文本框的值從一個窗體傳遞給另一個窗體c#

Form1的代碼

public string fo    
{ 
    get { return txtCusID.Text; } 
    set { txtCusID.Text = value; } 
} 

表2碼

public partial class SearchForm : Form 
{ 
    PawningForm f2 =new PawningForm(); 

    private void button1_Click_1(object sender, EventArgs e) 
    { 
     lblTest.Text = row.Cells[0].Value.ToString(); 
     f2.fo = lblTest.Text; 
     f2.Show(); 
    } 
} 

,但是當我點擊from2它會創建Form1中兩次按鈕,因爲 「f2.Show();」和現有的form1。但我只想將價值傳遞給現有的form1。

+0

在第一個表單代碼中打開第二個表單時,pa ss代表第一個表單的實例,而不是創建第一個表單的新實例 – Steve

回答

0

當您從調用窗體(PawningForm)創建SearchForm實例時,您可以傳遞調用窗體的實例並將其保存在SearchForm的全局變量中,因此您可以簡單地使用這些行更改代碼。

表1碼

SearchForm f = SearchForm(this); 
f.ShowDialog(); 

表2碼

public partial class SearchForm : Form 
{ 
    PawningForm f2; 
    public void SearchForm(PawningForm caller) 
    { 
      f2 = caller; 
      InitializeComponent(); 
    } 
    private void button1_Click_1(object sender, EventArgs e) 
    { 
     lblTest.Text = row.Cells[0].Value.ToString(); 
     f2.fo = lblTest.Text; 
    } 

    } 

現在,當你按一下按鈕,通過變量F2表示的實例是不是一個新的實例,但稱爲SearchForm實例的那個

相關問題