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. listen--监听数量

    listen--监听数量 #include <sys/socket.h> int listen(int sockfd, int backlog); /* backlog指定了该套接口排队的 ...

  2. [WinAPI] API 11 [创建目录]

    编程实现创建目录是非常简单的,只要使用API函数CreateDirectory即可. (1) Createdirectory ◇参数lpPathName:输入参数,所要创建的目录名或路径.lpSecu ...

  3. [Java Web] 2、Web开发中的一些架构

    1.企业开发架构: 企业平台开发大量采用B/S开发模式,不管采用何种动态Web实现手段,其操作形式都是一样的,其核心操作的大部分都是围绕着数据库进行的.但是如果使用编程语言进行数据库开发,要涉及很多诸 ...

  4. Could not load file or assembly 'System.Data.SQLite' or one of its dependencies. 试图加载格式不正确的程序。

    出现上述问题的原因是,所加载的程序集中有32位的,也有64位的,IIS 7 程序池 在Windows下.Net FrameWork是64位的,要想正确使用,需要对程序池进行配置.如下图所示:

  5. windows本地自动集成代码+SSH服务器配置

    在windows环境下使用Jenkins自动集成代码 描述: 局域网电脑A是本地服务器,安全win7系统,安装了Jenkins:现在想让A成为测试服务器,需要隔一段时间从SVN里同步出最新的代码,供客 ...

  6. Vue.js进阶

    <!-- 动态Props --><!DOCTYPE html> <html lang='utf-8'> <head> <meta charset= ...

  7. 安装Python图型处理库Python Imaging Library(PIL)

    方法1: 在Debian/Ubuntu Linux下直接通过apt安装: $sudo apt-get install python-imaging Mac和其他版本的Linux可以直接使用easy_i ...

  8. 微软BI 之SSIS 系列 - 利用 SSIS 模板快速开发 SSIS Package

    开篇介绍 在做 ETL 项目的时候,往往很多 Package 的开发都是基于相同的模型和流程.比如在 Package 开始运行时需要向 Process Log 表中插入记录,在 Package 运行结 ...

  9. GTD时间管理(3)---时间特区图

    最近在网上看到一副时间特区图,想象非常深,特点想分享给大家. 从上图可以看出 说明一个人全天的状况 说明: 全天时段 状态 7:30-8:00 是处于起床,穿衣,刷牙,吃早餐 8:00-9:00 是处 ...

  10. mysql 修改root登录密码

    mysql -u root -p 然后回车,进入(等于用空密码进入) 2 use mysql; update user set password=password('123456') where us ...