WinFrom 登录窗体 密码保存效果
WinFrom 登录窗体 保存密码效果 开发CS程序的程序员都会遇到 今天突然想把这个功能加到我的项目中 之后总结下 不多说 上图
如果关闭程序 下次在登录的时候 用户名、密码会自动保留下来 一个类(User) 一个方法(DisplayUserInfo) 代码分为4个事件
1、User 类
1 [Serializable] 2 public class User 3 { 4 5 private string loginID; 6 public string LoginID 7 { 8 get { return loginID; } 9 set { loginID = value; } 10 } 11 12 private string pwd; 13 public string Pwd 14 { 15 get { return pwd; } 16 set { pwd = value; } 17 } 18 }
2、DisplayUserInfo 方法

1 //显示用户所对应匹配的信息 2 private void DisplayUserInfo() 3 { 4 5 string key = combox1.Text.Trim(); 6 //查找用户Id 7 if (users.ContainsKey(key) == false) 8 { 9 txtPwd.Text = ""; 10 return; 11 } 12 //查找到赋值 13 User user = users[key]; 14 txtPwd.Text = user.Pwd; 15 // 如有有密码 选中复选框 16 chkcaes.Checked = txtPwd.Text.Trim().Length > 0 ? true : false; 17 }
3、窗体 Load 事件
1 Dictionary<string, User> users = new Dictionary<string, User>(); 2 private void frmMain_Load(object sender, EventArgs e) 3 { 4 //读取文件流对象 5 FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate); 6 if (fs.Length > 0) 7 { 8 BinaryFormatter bf = new BinaryFormatter(); 9 //读出存在Data.bin 里的用户信息 10 users = bf.Deserialize(fs) as Dictionary<string, User>; 11 //循环添加到Combox1 12 foreach (User user in users.Values) 13 { 14 combox1.Items.Add(user.LoginID); 15 } 16 17 //combox1 用户名默认选中第一个 18 if (combox1.Items.Count > 0) 19 combox1.SelectedIndex = combox1.Items.Count-1; 20 } 21 fs.Close(); 22 }
4、登录按钮 Click 事件
1 private void butOK_Click(object sender, EventArgs e) 2 { 3 User user = new User(); 4 // 登录时 如果没有Data.bin文件就创建、有就打开 5 FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate); 6 BinaryFormatter bf = new BinaryFormatter(); 7 // 保存在实体类属性中 8 user.LoginID = combox1.Text.Trim(); 9 //保存密码选中状态 10 if (chkcaes.Checked) 11 user.Pwd = txtPwd.Text.Trim(); 12 else 13 user.Pwd = ""; 14 //选在集合中是否存在用户名 15 if (users.ContainsKey(user.LoginID)) 16 { 17 //如果有清掉 18 users.Remove(user.LoginID); 19 } 20 //添加用户信息到集合 21 users.Add(user.LoginID, user); 22 //写入文件 23 bf.Serialize(fs, users); 24 //关闭 25 fs.Close(); 26 MessageBox.Show("保存密码成功!请关闭窗体看效果"); 27 }
5、用户名下拉框 SelectedIndexChanged 事件
1 //当用户名下拉选项发生改变时 2 private void combox1_SelectedIndexChanged(object sender, EventArgs e) 3 { 4 DisplayUserInfo(); 5 }
6、用户名下拉框 TextChanged事件
1 //当用户名文本发生改变时 2 private void combox1_TextChanged(object sender, EventArgs e) 3 { 4 DisplayUserInfo(); 5 6 }
以上 就是 WinForm 保存密码 功能的所有代码
Demo地址:https://files.cnblogs.com/yhyjy/%E8%AE%B0%E4%BD%8F%E5%AF%86%E7%A0%81.zip
以上供新手参考 如有好的方式 请留下您宝贵的思想与建议
作者:Elite.net
出处:http://www.cnblogs.com/yhyjy/
新浪微博:http://weibo.com/u/2709913775
世上本无垃圾,所谓垃圾是你放错了地方!
每天积累一点点,那么理想便会距离我们越来越近!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/yhyjy/
新浪微博:http://weibo.com/u/2709913775
世上本无垃圾,所谓垃圾是你放错了地方!
每天积累一点点,那么理想便会距离我们越来越近!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2013-04-25 用JS 设置 控件 属性