2014-02-20 28 views
1

我想回到以前的形式與我填寫的信息,但是當我點擊前一個按鈕它只是生成一個新的以前的形式。繼承人我的代碼爲下一個和以前。是否有任何方法可以將已放入的信息移回到以前的表單,而無需生成新的以前的表單?謝謝。移動到以前的表格

//moves to next form 
    public void next() 
    { 
     Form3 f4 = new Form3(); 
     f4.Show(this); 
     Hide(); 
    } 

    //Moves to previous form 
    public void Back() 
    { 
     Form1 f1 = new Form1(); 
     f1.Show(this); 
     Hide(); 
    } 

回答

0

問題:您在返回創造Form1()的實例方法,以便eachtime它在內存中創建一個新的Form1實例,並顯示相同的給你,而不是顯示現有Form1中這hasbeen填入值(已經隱藏)從內存中取出它。

解決方案:您可以使用Application.OpenForms[]獲取所需的內存中已有的表單。

試試這個:

//Moves to previous form 
public void Back() 
{ 
    Form myform = (Form1)Application.OpenForms["Form1"]; 
    myform.Show(); 
} 
0

OU可以使用的ShowDialog(顯示格式F4),而不是顯示()。這會在表單f2關閉後將執行恢復爲形式f1。

0
In Form2 : 
private void button1_Click(object sender, EventArgs e) 
{ 
    this.Hide(); 
    formRegistration.ShowDialog(); 
    // We get here when formRegistration's DialogResult gets set 
    this.Show(); 
} 
0

同意@Sudhakar。 備選:

public void next() 
{ 
    Form3 f4 = new Form3(this); 
    this.Hide(); 
    f1.BringToFront();   
    f4.Show(); 

} 
public void Back() 
{ 
    Form1 f1 = new Form1(this); 
       this.Hide(); 
       f1.BringToFront(); 
       f1.Show(); 
} 

此外,添加的東西到你所有的表單類和構造函數:

Form storedPrev; 

public Form1(Form prev) 
{ 
    this.storedPrev = prev; 
} 

在窗體關閉事件處理程序,添加以下代碼:

storedPrev.Show();