WinFrom 登陸窗體 保存密碼效果 開發CS程序的程序員都會遇到 今天忽然想把這個功能加到個人項目中 以後總結下 很少說 上圖程序員
若是關閉程序 下次在登陸的時候 用戶名、密碼會自動保留下來 一個類(User) 一個方法(DisplayUserInfo) 代碼分爲4個事件 ide
一、User 類spa
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 }
二、DisplayUserInfo 方法code
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 }
三、窗體 Load 事件orm
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 }
四、登陸按鈕 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 }
五、用戶名下拉框 SelectedIndexChanged 事件blog
1 //當用戶名下拉選項發生改變時 2 private void combox1_SelectedIndexChanged(object sender, EventArgs e) 3 { 4 DisplayUserInfo(); 5 }
六、用戶名下拉框 TextChanged事件事件
1 //當用戶名文本發生改變時 2 private void combox1_TextChanged(object sender, EventArgs e) 3 { 4 DisplayUserInfo(); 5 6 }
以上 就是 WinForm 保存密碼 功能的全部代碼 ip
Demo地址:http://files.cnblogs.com/yhyjy/%E8%AE%B0%E4%BD%8F%E5%AF%86%E7%A0%81.zip開發
以上供新手參考 若有好的方式 請留下您寶貴的思想與建議