模式窗体和无模式窗体:
简而言之,
模式窗体:
当窗体显示时禁止访问应用程序的其他部分。如果正在显示的对话框在处理前必须由用户确认,那么这种类型的窗体是非常有用的。
无模式窗体:
在显示无模式窗体时,允许使用应用程序的其他部分。如果窗体在很长一段时间内都可以使用,那么这种类型的窗体是非常有用的。
窗体显示为模式窗体还是无模式窗体,依赖于调用显示窗体的方法。想要显示无模式窗体,可以用show方法,如下:
Form myForm=new Form();
myForm.Show();
需要关闭的时候,可以使用Close方法来关闭。
myForm.Close();
另一种方式是使用Hide方法来简化窗体的不可见处理:
myForm.Hide();
使用ShowDialog方法可以显示模式窗体,如下:
myForm.ShowDialog();
这里直到对话框被用户消除对ShowDialog的调用才会返回。
控制Windows窗体应用程序
Application类提供 static 方法和属性以管理应用程序,例如启动和停止应用程序、处理 Windows 消息的方法和获取应用程序信息的属性。无法继承此类。
1,启动应用程序
窗体应用程序通过调用Application.Run()方法启动,如下:
Application.Run(new Form1());
Run方法在当前线程上开始运行标准应用程序消息循环,并使指定窗体可见。
此外Run方法还有个不带参的,如下:
Application.Run();
此时在没有窗体的情况下,在当前线程上开始运行标准应用程序消息循环。如果要稍后显示或者压根就不显示,则这种方式很有用。
2,确定应用程序路径信息
参考优快云,有时需要定位英语程序的文件路径的时候,可以用到Application的一些属性,如下:
获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string executablePath=Application.ExecutablePath;
获取启动目录的路径,如下:
string startupPath=Application.StartupPath;
获取所有用户共享的应用程序数据的路径。
string commonDataPath=Application.CommonAppDataPath;
获取用户的应用程序数据的路径。
string userDataPath=Application.UserAppDataPath;
3,关闭应用程序
在默认情况下,主窗体关闭就会自动退出应用程序。Application类提供了可用来初始化应用程序退出的方法,Exit
Application.Exit();
Exit不会立即关闭应用程序,而是关闭所有的消息泵,返回Run方法。
一般不要直接调用Exit方法,因为它会直接关闭所有的当前打开的窗体,关闭应用程序较好的方式是使用主窗体的Close方法。
为了在退出时进行一些处理,比如释放资源等等,可以添加一个ApplicationExit事件来处理应用程序,如下:
Form1()
{
Application.ApplicationExit+=new EventHandler(Application_ApplicationExit);
}
private void Application_ApplicationExit(object sender,EventArgs e)
{
//释放资源等等
connections.Close();
stream.Close();
。。。。。。
}