用户登录类:

public partial class UserLogin : DevComponents.DotNetBar.Office2007RibbonForm
{
private SceneViewer sceneViewer = new SceneViewer();
private UserManage userManage = new UserManage();

public UserLogin()
{
InitializeComponent();
}

private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
//MessageBox.Show("请输入正确的用户名和密码!", "登陆失败!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

private void btnLogin_Click(object sender, EventArgs e)
{

if (this.editUserName.Text == string.Empty)
{
MessageBox.Show("用户名不能为空!");
this.editUserName.Focus();
return;
}
else if(userManage.UserDictionary.ContainsKey(this.editUserName.Text))
{
string psd = userManage.UserDictionary[this.editUserName.Text];
if (this.editPassword.Text == psd)
{
MessageBox.Show("欢迎登录本系统!", "登陆成功!", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show("密码错误,请重新输入!", "密码错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.editPassword.Text = string.Empty;
this.editPassword.Focus();
}
}
else
{
MessageBox.Show("用户名不存在!","登录失败!",MessageBoxButtons.OK,MessageBoxIcon.Warning);
this.editUserName.Text = string.Empty;
this.editPassword.Text = string.Empty;
this.editUserName.Focus();
}

}

private void btnLogin_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.btnLogin.Click+=new EventHandler(btnLogin_Click);
}
}

private void UserLogin_Load(object sender, EventArgs e)
{
if (this.editUserName.Text == string.Empty && this.editPassword.Text == string.Empty)
{
this.btnLogin.Enabled = false;
}
}

private void editPassword_TextChanged(object sender, EventArgs e)
{
if (this.editUserName.Text == string.Empty && this.editPassword.Text == string.Empty)
this.btnLogin.Enabled = false;
else if (this.editUserName.Text == string.Empty && this.editPassword.Text != string.Empty)
this.btnLogin.Enabled = false;

else if (this.editUserName.Text != string.Empty && this.editPassword.Text == string.Empty)
this.btnLogin.Enabled = false;
else
this.btnLogin.Enabled = true;

}

}

主程序类:

static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

UserLogin userLogin = new UserLogin();
try
{
if (userLogin.ShowDialog() == DialogResult.OK)
Application.Run(new SceneViewer());
else
Application.Exit();
}
finally
{
userLogin.Close();
}
}

}

至于用户的管理,若用户数量很少,且内部使用可以用Dictionary<key,value>进行管理;

若用户数很多的话,就用数据库的方式进行管理

转载于:https://www.cnblogs.com/St_Dlng/archive/2010/10/14/1851067.html

WinForm登录模块设计开发相关推荐

  1. 客户关系管理项目——用户登录模块设计

    一 模块需求细化 登录的用户,默认情况有三个不同角色,分别为:系统管理员,前台客服,信息管理员. 用户登录后能够根据其角色来进行相关工作,进行完工作需要能够注销. 细化需求如下: 用户登录之后按角色分 ...

  2. 一文搞定dhtmlx-gantt调度界面,vue下使用dhtmlxgantt进行项目甘特图模块设计开发(前端界面显示篇(1))

    前言: 本文基于在较为成熟完整的项目,进行甘特图模块开发的内容.并不涉及node相关下载.安装及vue的相关使用. 1 需安装的模块 npm install dhtmlx-gantt npm inst ...

  3. 注册登录模块设计浅谈

    http://page.renren.com/601380231/note/863828122 注册&登录是一个网站的门户,它的设计姿态就是对待客人的态度.虽然用户可能每次都只花极少的时间在注 ...

  4. RDIFramework.NET ━ .NET快速信息化系统开发框架-4.1 平台登录模块

    RDIFramework.NET ━ .NET快速信息化系统开发框架 4.1 平台登录模块 第4章 框架功能模块说明 4.1 框架登录模块 系统登录不管在什么系统中都是不可或缺的功能模块,只有正常登录 ...

  5. 【论文写作】网上选课系统中模块设计如何写

    4.2 模块设计 4.2.1 登录模块设计 登录页面为系统的起始页面,登录界面设计如下图所示: 登录模块的功能是判断登录用户的权限以及将用户导航到不同的页面,管理员.教师和学生登录后的页面都是不相同的 ...

  6. Python OpenCV开发MR智能人脸识别打卡系统(四、服务模块设计)

    需要源码请点赞关注收藏后评论区留言私信~~~ 整体系统讲解如下 Python OpenCV开发MR智能人脸识别打卡系统(一.需求分析与系统设计) Python OpenCV开发MR智能人脸识别打卡系统 ...

  7. 如何设计一款安全高可用的登录模块

    背景 登录模块,是网站用户使用的第一个入口,也是最基本的功能,关系到用户数据和应用系统数据的安全.登录入口也是通向服务器的一个关键地方,如果登录入口设计的不够安全,那么整个系统将面临着致命安全隐患.这 ...

  8. 移动IM开发指南3:如何优化登录模块

    <移动IM开发指南>系列文章将会介绍一个IM APP的方方面面,包括技术选型.登陆优化等.此外,本文作者会结合他在网易云信多年iOSIM SDK开发的经验,深度分析实际开发中的各种常见问题 ...

  9. 来自damon的zencart二次开发教程-2.2登录模块分析

    我们在制作zencart的模板时,经常会遇到需要将zencart的登陆页面与注册账户页面分离的情况(在 默认情况下,点击"Login"按钮会进入登陆页面与注册账号页面,登录zenc ...

最新文章

  1. 中国团队 Nature 新冠论文被指图片造假,科研论文不端“何时休”
  2. 语音识别wav2letter++简介
  3. collection的iterator()方法
  4. 特殊方法求1~n的和
  5. 学习笔记(07):Python网络编程并发编程-客户端与服务端代码bug修复
  6. 实际开发中 dao、entity的代码怎样自动生成?一款工具送给你
  7. PAT乙级 1004 成绩排名
  8. 读书笔记:Sheldon Ross:概率论基础教程:随机变量
  9. LateX beamer 下的报错unknown CJK family \CJKsfdefault is being ignored
  10. 微信小程序断网异常处理
  11. 《增长黑客》:针对产品增长---思维导图
  12. python程序收发文件_使用python脚本发送eml文件
  13. 开环放大倍数和闭环放大倍数的区别
  14. Redis保存购物车信息
  15. 算法 | 详解斐波那契数列问题
  16. 寒假日报(1.23)
  17. linux split到指定目录,split命令_Linux split命令:切割(拆分)文件
  18. 码住!人工智能怎么影响教育?听这场直播就够了!
  19. 使用RKE安装K8S集群
  20. (原) 航模常用缩略语

热门文章

  1. Codeforces - 914F bitset 维护字符串匹配个数
  2. PHP中file_exists与is_file、is_dir的区别,以及执行效率的比较
  3. Android FileUtil(android文件工具类)
  4. {面试题49} 把字符串转换成整数
  5. webconfig和appconfig中出现特殊字符如何处理
  6. 伪元素改变date类型input框的默认样式实例页面
  7. Net设计模式实例之单例模式( Singleton Pattern)
  8. 结对开发四------求一维无头数组最大子数组的和
  9. C语言函数参数既做出参又做入参的代表
  10. django学习资料网址汇总