.NET:記錄歷史登錄名(序列化List方法)
在這篇文章中,我們將介紹如何實(shí)現(xiàn)帶有歷史信息的登錄名輸入框。我們將使用XML文件來(lái)存儲(chǔ)數(shù)據(jù),并利用XML序列化類XmlSerializer來(lái)實(shí)現(xiàn)將數(shù)據(jù)存儲(chǔ)到XML文件中以及從XML文件中讀取數(shù)據(jù)的過(guò)程
在這篇文章中,我們將介紹如何實(shí)現(xiàn)帶有歷史信息的登錄名輸入框。我們將使用XML文件來(lái)存儲(chǔ)數(shù)據(jù),并利用XML序列化類XmlSerializer來(lái)實(shí)現(xiàn)將數(shù)據(jù)存儲(chǔ)到XML文件中以及從XML文件中讀取數(shù)據(jù)的過(guò)程。
步驟一:制作窗體
首先我們需要?jiǎng)?chuàng)建一個(gè)窗體,給用戶名控件命名為cboUname,給登錄按鈕命名為btnLogin。密碼控件可以不使用,在本例中只是用作樣式展示。
步驟二:定義全局變量
在窗體代碼視圖中定義三個(gè)全局變量:unames,xmlser和fs。unames用于存儲(chǔ)用戶名的集合,xmlser用于序列化集合的對(duì)象,fs用于文件流。注意需要引入以下命名空間:、和。
步驟三:初始化對(duì)象
在窗體加載事件Form1_Load中,初始化unames和xmlser對(duì)象:
unames new Listlt;stringgt;();
xmlser new XmlSerializer(());
步驟四:處理按鈕點(diǎn)擊事件
在按鈕點(diǎn)擊事件btnLogin_Click中,處理以下代碼。代碼功能是將新輸入的用戶名存儲(chǔ)到unames集合中,然后將集合序列化到XML文件中。
(cboUname.Text);
fs new FileStream("unames.xml", );
(fs, unames);
fs.Flush();
();
();
步驟五:加載保存的用戶名數(shù)據(jù)
我們需要在窗體加載事件Form1_Load中將已序列化的數(shù)據(jù)讀取出來(lái)并反序列化到unames集合中,并將用戶名逐一添加到控件中。請(qǐng)?jiān)诘谌酱a后面添加以下代碼:
if (File.Exists("unames.xml"))
{
fs new FileStream("unames.xml", );
unames (fs) as Listlt;stringgt;;
foreach (string s in unames)
{
(s);
}
();
}
運(yùn)行程序并輸入兩個(gè)用戶名后,再次運(yùn)行程序,可以看到用戶名列表框中已經(jīng)顯示了之前輸入的用戶名。