关于 WinForm程序的登陆处理
2008-05-01 02:55
295 查看
作者:罗会涛
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。
就不会涉及到上面的问题了。
俺就是这么用的:)
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。
就不会涉及到上面的问题了。
俺就是这么用的:)
相关文章推荐
- 关于“WinForm程序的登陆处理”
- ABAP程序中关于长文本的处理方法
- laravel5.4 关于执行删除管理员时候被删用户如果当时是登陆状态还可以操作的处理
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案
- 关于程序出现ORA-04068错误的处理方法
- 关于处理程序文件(ashx)中调用Session的解决方法
- 关于一般处理程序接口的调用的方法
- JavaScript:关于事件处理程序何时可以直接访问元素的属性
- 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
- 关于结构体字对齐—BMP文件图像处理程序
- [转]关于C#.net winform程序验证moss的集成身份认证
- 关于对异常程序处理的监视程序
- 问题-关于sharemem程序访问WEB出现内存错误处理
- asp.net 登陆后在ashx处理程序中获取不到Session
- 关于微信小程序登陆的问题
- 关于资源下载里鱼眼图片处理的程序的解释
- 关于WinForm程序打开即隐藏的方法
- 关于程序出现ORA-04068错误的处理方法
- 关于Ajax控件ModalPopupExtender出现的 未通过 Sys.UI.DomEvent.addHandler 方法添加处理程序的解决方法。
- 分享一个基于winForm后台线程处理业务的小程序框架