【附代码】Form的Show()方法,为何运行时导致出现后即消失,而ShowDialog()则不会?
帮别人问的问题,我也不知道为何问这么怪的问题。她是把VS默认新建窗口工程的代码给改了using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form1());
Form a = new Form();
a.Show(); 用这句,运行时窗口一闪就完了
//a.ShowDialog(); 用这句,就不会消失 }
}
}
个人猜测,会不会Show()不阻塞线程?? 我查了MSDN没找到相关说明。如果有可能,请附上MSDN的解释,谢谢
------解决方案--------------------
show()不阻塞线程,那么,Main函数运行show()后,即结束整个程序,而showDialog()和Application.Run()均会阻止当前Main函数继续执行。