2012-05-23 51 views
0

我有一個Form1,當我運行一個循環時,我需要打開另一個窗體(Form2)。 問題是,當我運行該循環時,它僅顯示第一次Form2,然後Form2自動打開並關閉。Form.ShowDialog在循環中運行時只打開一次

探討它我寫了這個簡單的代碼,但它不工作:

Form2 reg = new Form2(); 
while (true) 
{ 
    reg.ShowDialog(); 
} 

在窗體2:

private void button1_Click(object sender, EventArgs e) 
{ 
    Application.Exit(); 
} 

感謝您的幫助!

+0

我想你應該告訴我們你想要的效果。看起來你想讓Form2打開,如果你關閉它,你希望它再次打開,永遠。這真是一個奇怪的願望。你永遠無法返回到Form1。 –

回答

1

我認爲你正在使用button1關閉你的Form2。這將執行不會簡單關閉Form2的button1_click,它會關閉整個Application。

我試過你的代碼,如果我在右上角使用X關閉Form2,它將被關閉並立即重新打開。

如果這是你的問題,你可以通過只修改你的方法是這樣解決的:

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

另一種解決方案可以將您的按鈕的DialogResult屬性設置來的東西從默認DialogResult.None不同。通過這種方式,當單擊按鈕時,表單會自動關閉,並且該屬性的值將用作ShowDialog()的結果。

+0

謝謝Francesco,您的解決方案(this.Close())完美無缺。這解決了我的問題。 –