首页 > 开发 > 综合 > 正文

关于 WinForm程序的登陆处理

2020-02-03 13:37:20
字体:
来源:转载
供稿:网友
作者:罗会涛
winform程序一般都是从一个form的static void main()开始运行,暂且称此form为mainform。main函数的一般写法是:static void main()
{
  application.run(new form1());
}




这样的写法有一个问题:如果需要从form1中调出另一个form,必须保持form1不能关闭,比如在一个button的click中调出form2:private void button1_click(object sender, system.eventargs e)
{
  (new form2()).show();
}




可以看到两个form同时显示在屏幕上,如果改成:private void button1_click(object sender, system.eventargs e)
{
  (new form2()).show();
  this.close();
}




那么执行到this.close()时,整个应用程序将终止运行,form2也会自动关闭。

如果需要仅仅显示form2,除了将form1.close改为form1.hide之外,还有一种办法,就是将main改为:static void main()
{
  (new form1()).show();
  application.run(); // 启动独立的应用程序线程
}




这样form1中的this.close()就不会导致应用程序终止运行了,而且不需要form1时,可以真正close从而释放一些资源。不过,应用程序的终止就不要在其他地方控制了,比如在form2的closed事件中:private void form2_closed(object sender, system.eventargs e)
{
  application.exit();
}

还有一种办法就是:
主窗体:formmain
登陆窗体:formlogin
在formmain中调用formlogin,登陆完成后,关闭formlogin。
就不会涉及到上面的问题了。
俺就是这么用的:)




发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表