2010-06-02 67 views
3

現在,我有兩種形式,稱爲Form 1和Form關閉Form1,在Form1有一個按鈕,當我點擊它,然後打開窗口2打開窗體2從Form1中,從窗體2

問題:在窗口2,當我點擊它時,我想創建一個按鈕,form2關閉,form1關閉。 ?如何做到這一點

+5

如何把問題在主題行,而不是說明你有一個。 – 2010-06-02 15:00:18

+1

歡迎來到StackOverflow,hcemp!您將在下一次將問題放在主題行中,類似於編輯者已有的方式。更多指南可在這裏:http://stackoverflow.com/faq和在這裏:http://meta.stackexchange.com/questions/tagged/faq – 2010-06-02 15:02:58

+0

對不起,我很新鮮,我的英語非常游泳池 – hcemp 2010-06-02 15:06:30

回答

7

Form1中:

private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 frm = new Form2(this); 
     frm.Show(); 
    } 

窗體2:

public partial class Form2 : Form 
{ 
    Form opener; 

    public Form2(Form parentForm) 
    { 
     InitializeComponent(); 
     opener = parentForm; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     opener.Close(); 
     this.Close(); 
    } 
} 
+0

謝謝!我用你的解決方案解決了這個問題 – hcemp 2010-06-02 15:17:19

0

你的問題是模糊的,但你可以使用ShowDialog顯示形式2.然後,當你接近2的形式,通過一個DialogResult對象的背影讓用戶知道怎樣的形式被關閉 - 如果用戶點擊該按鈕,然後關閉窗體1。

+0

有沒有更簡單的方法我知道在VB.NET中,調用frmScores.show()或frmMain.hide(),就像調用C#一樣簡單。 – 2010-06-02 15:04:22

+0

當然 - 那麼你可以使用SiN的解決方案。 – 2010-06-02 15:07:29

0

在form2.buttonclick把

this.close(); 

Form1中應該有窗口2的對象。

您需要訂閱form2的關閉事件。

,並在收盤方法把

this.close(); 
0

,如果你只是想關閉從Form2的Form1中,但不關閉窗口2,以及在這個過程中,正如標題所暗示的,那麼你可以通過一個基準,形成1一起表格2,當你創建它,並用它來關閉窗體1

例如,你可以一個

public class Form2 : Form 
{ 
    Form2(Form1 parentForm):base() 
    { 
     this.parentForm = parentForm; 
    } 

    Form1 parentForm; 
    ..... 
} 

場和構造函數添加到窗體2

如果要首先關閉窗口2,然後Form1中的問題的文字建議,我會與返回合適的結果Justins答案去到Form1上交易結束時窗口2

0

我爲這樣做一旦我的項目,關閉一個應用程序並打開另一個應用程序。

System.Threading.Thread newThread; 
    Form1 frmNewForm = new Form1; 

    newThread = new System.Threading.Thread(new System.Threading.ThreadStart(frmNewFormThread)); 
this.Close(); 
     newThread.SetApartmentState(System.Threading.ApartmentState.STA); 
     newThread.Start(); 

並添加以下方法。你的newThread.Start會調用這個方法。

public void frmNewFormThread)() 
    { 

     Application.Run(frmNewForm); 

    } 
1

這工作:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Me.Hide() 
    Form2.Show() 
0
//program to form1 to form2 
private void button1_Click(object sender, EventArgs e) 
{ 
    //MessageBox.Show("Welcome Admin"); 
    Form2 frm = new Form2(); 
    frm.Show(); 
    this.Hide();   
} 
0
private void button1_Click(object sender, EventArgs e) 
{ 
     Form2 m = new Form2(); 
     m.Show(); 
     this.Visible = false; 
} 
相關問題