用Show()呼叫的窗體不會返回任何值,在使用form.Show()顯示form以後,會馬上繼續執行form.Show()後面的語句。
而用ShowDialog()呼叫的窗體會返回一個DialogResult型的值,在使用form.ShowDialog()後,主程式會暫停,等待form被Close()以後返回一個值,
然後再繼續執行form.ShowDialog()後面的語句。
另外,假如用form.ShowDialog()開啟了form,然後又在form中用MessageBox.Show(string)彈出了一個對話方塊,則在MessageBox關閉後,form也會被關閉,可在form的FormClosing事件中加入以下處理來解決此問題:
if (e.CloseReason == CloseReason.None)
{
e.Cancel = true;
}