2011-11-26 48 views
-2
Form1 frm = new Form1(); 
frm1.ShowDialog(); 

我使用它來創建新的形式做一些東西(並不重要),我用的形式完成再經過我顯示的DialogResult再次打開相同的形式。 問題:我如何繼續打開相同的表單? 雖然Dialogresult是YES保持窗體打開(如何循環)? NO屬性打破了循環。 我希望問題清楚。如何環路的DialogResult

+0

「* i display dialogresult *」您是否顯示「MessageBox」? – Otiel

+0

這樣的東西 DialogResult rez = MessageBox.Show()//這裏自定義文本 – Michael27

回答

2

這裏是我的建議給你:

var form2 = new Form2(); 

do 
{ 
    form2.ShowDialog(); 
} 
while (form2.DialogResult == System.Windows.Forms.DialogResult.Yes); 

編輯

我從你的留言你的問題,你想使用一個MessageBox,所以你可以這樣去做:

var form2 = new Form2(); 

do 
{ 
    form2.ShowDialog(); 
} 
while (MessageBox.Show(string.Format("The DialogResult was {0}, do you want to show the form again?", form2.DialogResult), "My Program", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes); 
+0

我不認爲我理解你的代碼。你能澄清嗎? – Michael27

+2

據我瞭解你的問題,只要被調用窗體的DialogResult爲Yes,就想循環。所以我的代碼顯示窗體,如果DialogResult爲Yes,它會循環並再次顯示窗體。如果除Yes之外的任何內容,則循環停止。 – Fischermaen

+0

我根據評論改變了你的問題的樣本。 – Fischermaen

1

如果當用戶試圖關閉frm1時顯示一個dialogresult,如果答案是肯定就不要做任何事情。否則關閉frm1。我希望我能正確理解你的問題。

編輯:當你想關閉的frm1:

DialogResult res = MessageBox.Show("Do you want to keep this form open?", 
            "Close?", 
            MessageBoxButtons.YesNo); 

if(res == DialogResult.No) this.Close(); 
+0

我試過使用switch case,但它只能工作一次,對話框只顯示一次,不管我做什麼。 – Michael27