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. spring MVC注解深入研究

    @Controller @Service  @Controller和 @Component注册一个action 到spring 上下文中,bean 的ID 默认为类名称开头字母小写.@Reposito ...

  2. [JAVA] 基于TCP的起重机运行模拟器

    1.客户端 package ClientMain; import java.io.DataInputStream; import java.io.DataOutputStream; import ja ...

  3. [游戏模版10] Win32 平面地图贴图 正

    >_<:picture resource >_<:If you master the ways of mapping picture,then this problem is ...

  4. JfreeChart使用(转载)

    http://www.cnblogs.com/xingyun/ http://www.huosen.net/archives/156.html(此篇除了struts2外,还介绍了servlet下Jfr ...

  5. 深究JS异步编程模型

    前言  上周5在公司作了关于JS异步编程模型的技术分享,可能是内容太干的缘故吧,最后从大家的表情看出"这条粉肠到底在说啥?"的结果:(下面是PPT的讲义,具体的PPT和示例代码在h ...

  6. 插件~使用ECharts动态在地图上标识点

    ECharts可以很方便的在网页上绘制地图,图表,并且可以提供下载图像,放大,缩小,拖动等功能,今天主要说一下它的地图类型(type:'map')是如何实现的. 首先在ECharts地图的坐标需要我们 ...

  7. 1-MSP430点亮一个灯

    为了写一篇文章做铺垫--提醒着自己,,,,,, 现在看一下程序 还是说一下是怎么关掉的 往WDTCTL寄存器里写入了0x5A00,,为什么要写这个呢! 那么 WDTCTL = 0x005A  + 0x ...

  8. Javascript创建对象的学习和使用

    <html> <head> <meta charset="utf-8"> <title>javascript对象的学习</ti ...

  9. javaweb回顾第二篇tomcat和web程序部署

    前言这篇主要说下关于tomcat中一些属性和web程序的简单部署,可能在实际开发有更好的部署方式,但是这也是一个基础. 1:tomcat 关于tomcat估计只要接触java的人都听过这个名字,那我们 ...

  10. madown标签说明

    1.删除线的用法 ~~这是删除线~~