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. easyui combobox 中实现 checkbox

    $('#cc').combobox({ url:'combobox_data1.json', method:'get', valueField:'id', textField:'text', pane ...

  2. [游戏模版16] Win32 飞机射击 敌人追踪

    >_<:AI introduction. >_<:According the plane position (nowX,nowY) relative to birds' pos ...

  3. C# VS JAVA 差异 (未完待续)

    1. 静态构造函数 C#中有静态构造函数, Java中没有静态构造函数.其实Java中有一个类似静态构造函数的东东,称作静态初始化,或者静态代码块,可以通过这样的代码实现相同的功能: 但是Java中静 ...

  4. duilib进阶教程 -- 改进窗口拖动 (12)

    现在大家应该都知道caption="0,0,0,32",是指示标题栏区了吧,如果想要整个窗口都能拖动呢? 那直接把高度改成和窗口一样不就得了~O(∩_∩)O~ 嗯,这样是可以,比如 ...

  5. atitit.提升开发效率---动态语言总结

    atitit.提升开发效率---动态语言总结 ruby,python 都不错,就是语法不好, 应用不广泛,文档,工具都非常少,不推荐... php狠不错,就是高级特性不行.. 看来子有.net/jav ...

  6. paip.myeclipse7 java webservice 最佳实践o228

    paip.myeclipse7  java webservice 最佳实践o228 java的ws实现方案:jax-ws>>xfire ws的测试工具  webservice测试调用工具W ...

  7. 接入多家ERP厂商,美团点评餐饮高速路开启

    前段时间美团点评CEO王兴所提出的中国互联网进入下半场观点引发了互联网从业人士以及网友们的热议.当时王兴提出,当前国内外所有的互联网公司包括美团点评在内都还远没有做好整个产业链的服务,美团点评也只做了 ...

  8. Maven学习总结(二)——Maven项目构建过程练习_转载

    上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建立Hello项目 1.首先建立Hello项目,同时建立M ...

  9. CSS揭秘读书笔记 (一)

    CSS揭秘读书笔记      (一) 一.半透明边框 要想实现半透明边框可以使用border: border: 10px  solid  hsla(0,0%,100%,.5); background: ...

  10. DataWindow.Net 2.5 配置

    在用过的所有的开发工具中,感觉最简单好用的就数PB了,他的DataWindow最方便,拖拖拽拽就把报表做好了,可惜现在很少人有用了.现在C/S系统一般用C#来做,但是做报表的时候总感觉没有DataWi ...