背景


Winform实现登录窗体中记住密码的功能,模仿QQ登录记住密码的实现
如下图所示,其中标题部分因为项目保密的原因,我加了马赛克,请大家见谅。

用户名输入框我们采用下拉列表框ComboBox
密码框我们采用textBox,并设置为密码框

设置textBox输入时不显示明文,需要将useSystemPasswordChar改为true,然后multiline设置为false,然后重新生成一下就可以了,因为textbox为显示为密码字符是当textbox为单行编辑的时候,useSystemPasswordchar的设置才会生效,然后我们还可以通过passwordChar设置textbox中以哪种形式来显示你输入的字符,默认是”*”。

实现思路


记住密码功能的常见实现方法有三种:
方法一:写入本地数据库
方法二:写入文件——txt、xml、ini
方法三:注册表
我们采用的方式是第二种,其找第二种方式最简单便捷,因此我们采用这种方式实现,主要思路。我们将用户的用户名和密码已键值对等方式存储在文件中,如果用户选择了记住密码,就将信息写入文件,而在窗体加载的时候,我们读取文件中的内容即可。

用户类操作接口


//要先将User类先设为可以序列化(即在类的前面加[Serializable])[Serializable] public class User{//public User(string username, string password)//{//    this.userName = username;//    this.passWord = password;//}private string userName;public string Username{get { return userName; }set { userName = value; }}private string passWord;public string Password{get { return passWord; }set { passWord = value; }}}

在窗体加载的时候,读取文件信息,并且绑定到用户名comboBox上

private void Login_Load(object sender, EventArgs e){//  读取配置文件寻找记住的用户名和密码FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate);if (fs.Length > 0){BinaryFormatter bf = new BinaryFormatter();users = bf.Deserialize(fs) as Dictionary<string, User>;foreach (User user in users.Values){this.UserName.Items.Add(user.Username);}for (int i = 0; i < users.Count; i++){if (this.UserName.Text != ""){if (users.ContainsKey(this.UserName.Text)){this.PassWord.Text = users[this.UserName.Text].Password;this.RemeberPassword.Checked = true;}}}}fs.Close();//  用户名默认选中第一个if (this.UserName.Items.Count > 0){this.UserName.SelectedIndex = this.UserName.Items.Count - 1;}//item = (List<User>)bUser.GetAll();//item = //this.UserName.DataSource = item;//this.UserName.DisplayMember = "Username";}

当用户选择了用户名时候,密码框中显示对应密码

 private void UserName_SelectedValueChanged(object sender, EventArgs e){//  首先读取记住密码的配置文件FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate);if (fs.Length > 0){BinaryFormatter bf = new BinaryFormatter();users = bf.Deserialize(fs) as Dictionary<string, User>;for (int i = 0; i < users.Count; i++){if (this.UserName.Text != ""){if (users.ContainsKey(UserName.Text) && users[UserName.Text].Password != ""){this.PassWord.Text = users[UserName.Text].Password;this.RemeberPassword.Checked = true;}else{this.PassWord.Text = "";this.RemeberPassword.Checked = false;}}}}fs.Close();}

用户点击登录时,记录密码或者用户名信息

 private async void Submit_Click(object sender, EventArgs e)                       //登陆验证{string username = this.UserName.Text.Trim();string password = this.PassWord.Text.Trim();User user = new User();FileStream fs = new FileStream("data.bin", FileMode.Create);BinaryFormatter bf = new BinaryFormatter();user.Username = username;if (this.RemeberPassword.Checked)       //  如果单击了记住密码的功能{   //  在文件中保存密码user.Password = password;}else{   //  不在文件中保存密码user.Password = "";}//  选在集合中是否存在用户名 if (users.ContainsKey(user.Username)){users.Remove(user.Username);}users.Add(user.Username, user);//要先将User类先设为可以序列化(即在类的前面加[Serializable])bf.Serialize(fs, users);//user.Password = this.PassWord.Text;fs.Close();//////  这里填写登录的处理逻辑代码///}

C#-WinForm登录窗体实现记住密码的功能(仿QQ实现)相关推荐

  1. 用localStorage实现登录时记住密码的功能

    用localStorage实现登录时记住密码的功能 HTNL代码片段 <el-input v-model="ruleForm.user" placeholder=" ...

  2. android开发实例之minitwitter登录界面+代码,登录界面_记住密码

    实现登录界面的记住密码功能 实验目的 1.掌握SharedPreferences类,这个类可以实现简单的存储,主要用于保存窗口状态 实验效果 主要代码 LoginActivity package co ...

  3. 登录界面的记住密码和密码的隐藏、显示

    登录界面的记住密码功能 先上布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android& ...

  4. Java实现登录时cookie记住密码

    前言 Java实现登录时cookie记住密码,下次登录不用重新输入密码,自动记住密码进行登录 编写代码 首先写一个页面登录表单,还有它对应的js <%--Created by IntelliJ ...

  5. 基于localStorge开发登录模块的记住密码与自动登录

    前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个 ...

  6. Android studio登录界面之记住密码

    登录界面之记住密码 文章目录 登录界面之记住密码 文件存储的方式: 记住密码 存储数据 读取数据 完整代码 登录界面的博客: https://blog.csdn.net/genijmni/articl ...

  7. html5登录页面自动记住密码,使用HTML5中的localStorage实现记住密码功能

    这篇文章主要介绍了html5超简单的localStorage实现记住密码的功能实现,非常具有实用价值,需要的朋友可以参考下 HTML5 提供了两种在客户端存储数据的新方法:localStorage - ...

  8. ASP实现记住密码的功能

    把以下代码加入验证页:  <%if Trim(Cstr(request.QueryString("check")))="true" then '用来判断是 ...

  9. 安卓实现记住密码登陆功能

    在安卓程序中,我们经常会使用到很多登陆的功能,会看到很多记住密码的地方.这里,我给大家写一个简单的记住密码的功能.注意,这里是简单的记住密码功能,仅用于练习学习用哦.这个程序主要是给学习安卓的朋友作为 ...

最新文章

  1. pip 20.3 新版本发布!即将抛弃 Python 2.x
  2. [知识复习] 结构体以及结构体指针
  3. 北斗导航 | 北斗RDSS受地面5G干扰影响的分析及对策研究
  4. linux系统分区不,其中,不属于Linux系统分区的是()。
  5. FTP服务器搭建下的主动模式和被动模式
  6. java 翻转句子_Java编程-句子反转
  7. angularjs 同步請求_angularjs $q、$http 处理多个异步请求
  8. DC漫画公司正在考虑进军NFT市场
  9. guava-Retryer失败重试
  10. 对比了6家交易所的下币规则,我们发现……
  11. django和php学哪个好,哪个更适合我的项目:Django、Plone、php还是rubyonrails
  12. echarts地图设置label引导线
  13. 2020中青杯本科题目学习
  14. 个人作业--数组之首尾相连
  15. ZLL的每周一更(maybe)--浏览器的运行机制
  16. 一个jsp+cgi+html小工程,完成注册,后台使用CGI
  17. python数据分析教程百度云资源-【python数据分析+pdf】百度云下载 - 云盘精灵
  18. wstmart知识记录
  19. [渝粤教育] 西南科技大学 统计学原理 在线考试复习资料(3)
  20. 奇兔recovery卡刷教程_奇兔Recovery(安卓手机刷机助手)V8.2.1.4 最新版

热门文章

  1. 有毒气体传感器代替金丝雀和老鼠在矿山
  2. 【开发应该了解的Web文件下载】
  3. JDBC学习总结及复习笔记(附MySQL驱动和JDK-API中文版)
  4. Postman汉化教程
  5. 【2022年火爆的商铺共享WiFi系统源码】
  6. 基于JAVA共享汽车管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  7. 学会了,JS逆向去除App开屏广告
  8. 换皮后贴吧玩家反馈整理
  9. note3 android 4.4,三星手机升级安卓4.4.4名单曝光 S5、Note3将最快推送
  10. HTML5 屏幕适配笔记