實現效果如下

實現過程
[Serializable] class User { //記住密碼 private string loginID; public string LoginID { get { return loginID; } set { loginID = value; } } private string pwd; public string Pwd { get { return pwd; } set { pwd = value; } } }
首先新建一個實體類,創建兩個字段並封裝成對應屬性
User user = new User(); // 登錄時 如果沒有Data.bin文件就創建、有就打開 FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate); BinaryFormatter bf = new BinaryFormatter(); // 保存在實體類屬性中 user.LoginID = comboBoxEx1.Text.Trim(); //保存密碼選中狀態 if (checkBoxXUser.Checked) user.Pwd = passWordtext.Text.Trim(); else user.Pwd = ""; //選在集合中是否存在用戶名 if (users.ContainsKey(user.LoginID)) { //如果有清掉 users.Remove(user.LoginID); } //添加用戶信息到集合 users.Add(user.LoginID, user); //寫入文件 bf.Serialize(fs, users); //關閉 fs.Close();
然后對選中按鈕做判斷是否選中,若選中則將用戶信息添加到集合中。最后記得關閉文件的讀寫操作~,到這里已經完成了保存用戶信息到集合中了。是不是超簡單,不過還沒有完。因為我們上面只是保存,我們需要打開窗體或者頁面的時候,是需要將用戶信息再次
讀取出來的。所以下面將是對用戶信息的讀操作
//讀取文件流對象 FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate); if (fs.Length > 0) { BinaryFormatter bf = new BinaryFormatter(); //讀出存在Data.bin 里的用戶信息 users = bf.Deserialize(fs) as Dictionary<string, User>; //循環添加到Combox1 foreach (User user in users.Values) { comboBoxEx1.Items.Add(user.LoginID); } //combox1 用戶名默認選中第一個 if (comboBoxEx1.Items.Count > 0) comboBoxEx1.SelectedIndex = comboBoxEx1.Items.Count - 1; } fs.Close();
讀的話比較簡單,就不一一解釋了,相信各位能看明白,另外,當中需要引用到的類庫是
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;
