zoukankan      html  css  js  c++  java
  • 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         }
    View Code

    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地址:http://files.cnblogs.com/yhyjy/%E8%AE%B0%E4%BD%8F%E5%AF%86%E7%A0%81.zip

    以上供新手参考 如有好的方式 请留下您宝贵的思想与建议

  • 相关阅读:
    Java 集合-Map集合嵌套 的遍历四种方式
    Java 集合-set集合,Map接口
    Java 集合 Collection
    Java中的各种转换
    Java 关于时间的类
    Java 中 String、StringBuffer、StringBuilder 类
    Java 构造函数,super,this,final,static
    Java 面向对象关键字
    ArrayList集合
    JAVA数组
  • 原文地址:https://www.cnblogs.com/yhyjy/p/3688466.html
Copyright © 2011-2022 走看看