问题:我们通常再制作WinForm应用程序的时候,运行程序的第一个窗口一般是登陆窗口。代码如下:

那么这种方式有一个弊端,这种启动方式,其实就是把登陆窗口设置为主窗体。因此,再登陆后,我们通常是调用Hide()方法将 这个登陆窗体隐藏,因此其实这个窗体还是占用内存。

那么,点击登陆后,调用Close()方法可以不?当然不可以,这种方式下,登陆窗口是主窗体,调用Close()就等于把整个程序关闭了。

 static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginForm()); }

我多番搜索和实践。由下面方法实现:

环境:开发环境Visual Studio 2010  LoginForm.cs是登陆窗口   MainFrom.cs是程序主窗口

主要思想:程序运行后先打开登陆窗口,主窗体在登陆窗口Login.DialogoResult==DialogReesult.OK时运行主窗体

实现方法:

首先在解决方案管理器(Program.cs)里的代码

 static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new LoginForm());
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form Login = new LoginForm();
Login.ShowDialog();//显示登陆窗体
if (Login.DialogResult == DialogResult.OK)
Application.Run(new MainForm());//判断登陆成功时主进程显示主窗口
else return; }
}

然后在登陆窗口(LoginForm.cs)的登陆按钮(bt_login)Click事件里:

  private void bt_login_Click(object sender, EventArgs e)
{ if (this.tb_username.Text == "admin" && this.tb_password.Text == "")
{
this.DialogResult = DialogResult.OK;//关键:设置登陆成功状态
this.Close();
}
else
{
MessageBox.Show("用户名或者密码输入有误,请重新输入", "警告");
}
}

最新文章

  1. 原创 C++作用域 (二)
  2. npm 入门
  3. Nessus的安装/激活/更新
  4. Hibernate批量处理数据、HQL连接查询
  5. js判断当前的访问是手机还是电脑
  6. ubuntu安装 laravel 过程中出现: mcrypt php extension required 的问题 | 以及composer相关问题 | Nginx安装
  7. Git PHP提交
  8. Ubuntu下Django初体验(三)——django初体验
  9. [Netty 1] 初识Netty
  10. python成长之路16
  11. 微软系统工具套件SysinternalsSuite各个工具功能说明
  12. properties + IO 读取配置文件
  13. Android-重新包装Toast,自定义背景
  14. Linq常用List操作总结,ForEach、分页、交并集、去重、SelectMany等
  15. 《DSP using MATLAB》Problem 7.5
  16. javaWeb代码工程统计
  17. node.js安装后出现环境变量错误找不到node
  18. Linux中ls -l(ll)返回结果中的文件访问权限-rw-r--rw-
  19. Run ASP.NET MVC site on mac (mono/xamarin studio)
  20. Html概述

热门文章

  1. 使用hibernate读取hibernate.cfg.xml文件时碰到这个错误org.hibernate.internal.util.config.ConfigurationException: Could not locate cfg.xml resource [/HibernateTest/src/hibernate.cfg.xml]
  2. css——被自己遗忘的css属性
  3. 7.MySQL优化---存储过程和存储函数
  4. 自定义php(NON-CORE WORDPRESS FILE) 引用 wordpress
  5. UVA - 11754 Code Feat (分块+中国剩余定理)
  6. hawq创建filespace,tablespace,database,table
  7. 关于讯飞语音SDK开发学习
  8. Mesos问题汇总
  9. 创建Task的多种方法
  10. UIButton 不同状态图片来回切换