WinFrom 登录窗体 密码保存效果

        WinFrom 登录窗体 保存密码效果 开发CS程序的程序员都会遇到 今天突然想把这个功能加到我的项目中 之后总结下 不多说 上图

   WinFrom 登录窗体 密码保存效果

  如果关闭程序 下次在登录的时候 用户名、密码会自动保留下来  一个类(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 方法

WinFrom 登录窗体 密码保存效果
 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

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

你可能感兴趣的:(ROM)