每个项目都会有一个主程序窗口,在客户端应用软件上更是如此。MainPanelForm 是主程序窗口,UserLoginForm是用户登录窗口,WelcomeForm是欢迎界面。
效果:
点击程序进入欢迎界面,欢迎界面一闪而逝,到登录界面,登录验证成功后跳转到主程序界面。将前两个窗体销毁。
主程序入口文件Program.cs如下(Main()方法在创建任何类或结构的实例前被调用,声明为static):
static void Main() {
//登录前初始化
WelcomeForm wf = null;
UserLoginForm loginForm = null;
try {
//欢迎界面
wf = new WelcomeForm();
wf.Show();
//初始化公共UI对象
........
//初始化用户配置文件
.........
//初始化版本信息
.........
//登录界面
loginForm = new UserLoginForm();
wf.Text = "";
//关闭欢迎界面
wf.Close();
wf.Dispose();
wf = null;
loginForm.ShowDialog();
if (loginForm.IsLogin) {
loginForm.Dispose();
Application.Run(new MainPanelForm()); //主窗体
} else {
Application.Exit();
}
} catch (Exception ex) {
DebugLog.fatal("[程序关闭]" + ex.ToString());
} finally {
if (loginForm != null) {
loginForm.Close();
loginForm.Dispose();
}
if (wf != null) {
wf.Close();
wf.Dispose();
}
}
}
程序入口,首先显示WelcomeForm界面,初始化一些操作后(即间隔一段时间),跳转到登录界面,关闭欢迎界面资源。欢迎界面之后,验证通过,设置如下:
isLogin = true;
this.Close();
UserLoginForm静态变量isLogin是通过封装字段得到。
Boolean isLogin = false;
public Boolean IsLogin {
get {
return isLogin;
}
set {
isLogin = value;
}
}
以上是由程序启动开始,欢迎界面->用户登录界面->主窗口界面的流程。
补充:
前面说到Main()函数,如果想要在关闭窗口时关闭整个程序,Application.Exit();即可。