C#超簡單實現記住密碼,效果如下
實現過程
[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;