用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;
}