WinFrom 登录窗体 保存密码效果 开发CS程序的程序员都会遇到 今天突然想把这个功能加到我的项目中 之后总结下 不多说 上图

   

  如果关闭程序 下次在登录的时候 用户名、密码会自动保留下来  一个类(User)  一个方法(DisplayUserInfo)   代码分为4个事件

1、User 类

   [Serializable]
public class User
{ private string loginID;
public string LoginID
{
get { return loginID; }
set { loginID = value; }
} private string pwd;
public string Pwd
{
get { return pwd; }
set { pwd = value; }
}
}

2、DisplayUserInfo 方法

    //显示用户所对应匹配的信息
private void DisplayUserInfo()
{ string key = combox1.Text.Trim();
//查找用户Id
if (users.ContainsKey(key) == false)
{
txtPwd.Text = "";
return;
}
//查找到赋值
User user = users[key];
txtPwd.Text = user.Pwd;
// 如有有密码 选中复选框
chkcaes.Checked = txtPwd.Text.Trim().Length > ? true : false;
}

3、窗体 Load 事件

         Dictionary<string, User> users = new Dictionary<string, User>();
private void frmMain_Load(object sender, EventArgs e)
{
//读取文件流对象
FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate);
if (fs.Length > )
{
BinaryFormatter bf = new BinaryFormatter();
//读出存在Data.bin 里的用户信息
users = bf.Deserialize(fs) as Dictionary<string, User>;
//循环添加到Combox1
foreach (User user in users.Values)
{
combox1.Items.Add(user.LoginID);
} //combox1 用户名默认选中第一个
if (combox1.Items.Count > )
combox1.SelectedIndex = combox1.Items.Count-;
}
fs.Close();
}

4、登录按钮 Click 事件

    private void butOK_Click(object sender, EventArgs e)
{
User user = new User();
// 登录时 如果没有Data.bin文件就创建、有就打开
FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate);
BinaryFormatter bf = new BinaryFormatter();
// 保存在实体类属性中
user.LoginID = combox1.Text.Trim();
//保存密码选中状态
if (chkcaes.Checked)
user.Pwd = txtPwd.Text.Trim();
else
user.Pwd = "";
//选在集合中是否存在用户名
if (users.ContainsKey(user.LoginID))
{
//如果有清掉
users.Remove(user.LoginID);
}
//添加用户信息到集合
users.Add(user.LoginID, user);
//写入文件
bf.Serialize(fs, users);
//关闭
fs.Close();
MessageBox.Show("保存密码成功!请关闭窗体看效果");
}

5、用户名下拉框 SelectedIndexChanged 事件

  //当用户名下拉选项发生改变时
private void combox1_SelectedIndexChanged(object sender, EventArgs e)
{
DisplayUserInfo();
}

6、用户名下拉框 TextChanged事件

  //当用户名文本发生改变时
private void combox1_TextChanged(object sender, EventArgs e)
{
DisplayUserInfo(); }

以上 就是 WinForm 保存密码 功能的所有代码

Demo地址:http://files.cnblogs.com/yhyjy/%E8%AE%B0%E4%BD%8F%E5%AF%86%E7%A0%81.zip

以上供新手参考 如有好的方式 请留下您宝贵的思想与建议

WinFrom 登录窗体 密码保存效果的更多相关文章

  1. js操作cookie,实现登录密码保存 [转]

    转自:http://blog.csdn.net/zyujie/article/details/8727828 ( 谢谢博主了) js操作cookie,实现登录密码保存.cookie的存放方式是以键值对 ...

  2. 数据加密实战之记住密码、自动登录和加密保存数据运用DES和MD5混合使用

    MD5的简介:MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有 ...

  3. 如何用cookie保存用户的登录的密码和用户名

    思路:绘制一个简单的登录界面的Servlet并要在此页面中读取保存密码和用户名的cookie--->在登录处理界面的servlet中把用户名和密码保存到cookie中 //登录界面的Servle ...

  4. 很实用的HTML5+CSS3注册登录窗体切换效果

    1. [代码]3个很实用的HTML5+CSS3注册登录窗体切换效果 <!DOCTYPE html><!--[if lt IE 7 ]> <html lang=" ...

  5. c#利用三层架构做一个简单的登录窗体

    就个人而言,三层架构有点难理解,不知道该如何下手,各层与各层之间怎么调用 最近一直在研究三层架构,经过网上学习与多方打听写一下自己的心得.有不足之处,可以评论和私聊探讨 言归正传: 三层架构(3-ti ...

  6. iOS:iOS开发中用户密码保存位置

    原文来自简书:http://www.jianshu.com/p/4af3b8179136/comments/1294203 如果要实现自动登录,不必每次打开应用都去登录,我们势必要把密码保存到本地.一 ...

  7. TortoiseSVN切换更改登录账号密码

    TortoiseSVN切换更改登录账号密码 方法: 在TortoiseSVN的设置对话框中,选择“已保存数据”,在“认证数据”那一行点击“清除”按钮,清楚保存的认证数据,再检出的时候就会重新跳出用户名 ...

  8. Shiro自定义realm实现密码验证及登录、密码加密注册、修改密码的验证

    一:先从登录开始,直接看代码 @RequestMapping(value="dologin",method = {RequestMethod.GET, RequestMethod. ...

  9. winform程序登陆后关闭登录窗体

    用winform做程序的时候,我们一般都是在Program先启动登录窗体,然后登录成功后才创建主窗体,结果这就导致了登录窗体无法关闭 所以如果我们不在Program的程序入口先创建登录窗体的话就能完美 ...

随机推荐

  1. 微软BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server)

    [公告]本博客于2015年10月起不再更新 新博客文章主要发表在商业智能BI社区: http://www.flybi.net/blog/biwork 博客地图自动分类 文章目录方便更好的导航,阅读文章 ...

  2. NBIbatis 基础框架

    基础框架 NBIbatis 为真实在用的系统中剥离出的一个ibatis.net应用框架,目的在于通过此项目让软件工程师集中关注表现层及业务规则编写. 通过数据访问和业务规则可快速搭建不同表现形式的网站 ...

  3. mongodb(二) 安装和使用

    mongodb的安装和使用 最近的项目需要使用到mongodb,从而开始熟悉nosql,有了本篇文章,记录和方便他人. mongodb的安装 下载地址:http://www.mongodb.org/d ...

  4. 2014-3-11 星期二 晴 [卓有成效 master 摸索计划方案]

    今日总结: [汇编]:StudyNew+ReView-->[中]上机,还行,学点新知识 [英语]:Study-->[中]发现这个要变得好啦 [----]:lib [----]:lib--& ...

  5. [ACM_搜索] POJ 1096 Space Station Shielding (搜索 + 洪泛算法Flood_Fill)

    Description Roger Wilco is in charge of the design of a low orbiting space station for the planet Ma ...

  6. 无线客户端框架设计(4):自定义生命周期的设计(iOS篇)

    首先要确定一点,我们的App,要基于XIB文件进行编程,而不是在每个相应的ViewController里面去手动创建页面的每个控件.这样做的好处是,将页面布局与业务逻辑彻底隔离.于是我们可以把xib的 ...

  7. C/C++文件操作1

    在C语言中,文件操作都是由库函数来完成的. 在本章内将介绍主要的文件操作函数. 文件打开函数fopen fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式 ...

  8. javascript 中关于对象转换数字值的一些特点

    下面是摘至<Javascript 高级程序设计第三版>里的一段话 是关于对象转换数字值的一些规则 "在应用于对象时,先调用对象的valueOf()方法以取得一个可供操作的值.然后 ...

  9. python先序、中序、后序排序

    #encoding=utf-8 class Tree(): def __init__(self,leftjd=0,rightjd=0,data=0): self.leftjd = leftjd sel ...

  10. SQLite 批量insert - 如何加速SQLite的插入操作

    本人翻译, 原文见: http://tech.vg.no/2011/04/04/speeding-up-sqlite-insert-operations/ 我正在开发一个Android程序, 它使用S ...