行業領先的.NET界面控件DevExpress 日前正式發布v19.1版本,本站將以連載的形式介紹各版本新增內容。在本系列文章中將為大家介紹DevExpress WPF v19.1中新增的一些控件及部分功能增強。
Ribbon and Navigation
Office 2019樣式和Simplified Ribbon
DevExpress WPF Ribbon附帶一個新的Office 2019樣式的顯示風格。
新版本中還添加了一個新的選項——Simplified Ribbon。啟用此選項后,Ribbon項目將顯示在一行中。
全新的Breadcrumb控件
新的Breadcrumb控件允許您輕松地重現Windows文件資源管理器UX。 其功能包括:
Hamburger Menu Events
Rich Text Editor
支持跟蹤變更
您現在可以使用Track Changes功能進行修訂來加載和導出文檔。
增強RTL功能
分布式段落東亞語言的正當性
WPF Rich Text Editor現在支持'Distributed'和'Thai Distributed'段落對齊,可以在代碼中或通過命令UI指定。
DOCX和DOC文件加密
WPF Rich Text Editor支持DOCX和DOC文件加密, 您可以使用標準或敏捷加密來加密文檔。
支持HR Tag
您現在可以使用HTML“HR”標簽(水平規則)加載、打印和導出文檔。
=======================================================
DevExpress v19.1全新發布,最新動態請持續關注DevExpress中文網!
https://www.devexpresscn.com/
DevExpress中文網官網QQ群:540330292 歡迎一起進群討論
點擊“了解更多”獲取最新試用版!
這段時間在給學生進行軟件開發培訓過程中,針對用戶登錄功能常見的記住密碼功能,部分學生缺乏編程經驗,不知道采用什么方法實現該功能,進而無法編程。本文主要針對記住密碼功能實現給初學者提供建議與參考。首先給出記住密碼實現頁面,點擊登錄時針對記住密碼自動填寫用戶名與密碼。實現效果如下圖:
登錄窗口記住密碼功能實現
功能實現如上圖所示,目前主流解決該問題的方法包括:
以二進制文件形式實現對用戶登錄信息進行本地文件存儲,在軟件運行load時查詢該文件是否存儲,如果文件存在則讀取用戶登錄信息并顯示到界面控件中。
該方法主要借助簡單的數據庫Access實現對用戶登錄信息進行存儲,通過本地數據庫讀寫操作實現對用戶信息進行讀寫,進而實現記住密碼功能
通過注冊表讀寫功能將用戶密碼狀態寫入注冊表中,通過鍵值實現狀態存儲,軟件運行時查詢注冊表記住密碼狀態,讀取相關信息實現記住密碼功能。
以上三類方法是當前解決登錄功能記住密碼的主要方法,結合實際應用難易程度,本文選擇實用文件存儲方式實現記住密碼。基本思路流程及部分代碼描述如下:
1、首次登錄系統時需要選擇是否記住密碼,如選擇記住密碼則查詢保存用戶名密碼文件是否存在,存在刪除,不存在創建文件,寫入二進制數據。
if(File.Exists("f:/userlogin.bin"))//假設存儲文件名稱與路徑為f:/userlogin.bin { File.Delete("f:/userlogin.bin");//判斷是否存在,存在則刪除舊文件 }
創建并寫入數據:
try { bw=new BinaryWriter(new FileStream("f:/userlogin.bin", FileMode.Create)); bw.Write(user_id);//寫入用戶ID bw.Write(user_pasd);//寫入用戶密碼 bw.Close(); } catch(IOException ex) { MessageBox.Show("寫入文件失敗"+ex.Message);//顯示異常信息 }
2、首次登錄完成記住密碼相關信息文件創建與寫入之后下一步就是需要利用創建的文件實現記住密碼功能。當用戶再次登錄時自動填寫用戶名與密碼。實現基本思路就是窗體 load事件中去查詢讀取文件信息,如果文件讀取成功顯示用戶名與密碼,實現代碼如下:
if (File.Exists("f:/userlogin.bin")) { /*********讀取*******************************/ try { br=new BinaryReader(new FileStream("f:/userlogin.bin", FileMode.Open)); string uname=br.ReadString();//讀取用戶名 string upasd=br.ReadString();//讀取密碼 br.Close(); if(uname!="" && upasd !="") { this.textBox1.Text=uname;//寫入TextBox this.textBox2.Text=upasd;//寫入TextBox this.textBox3.Text=code; //驗證碼寫入TextBox this.checkBox1.Checked=true;//設置記住密碼狀態 } } catch (IOException ex) { MessageBox.Show("文件讀取失敗" + ex.Message); } }
以上兩部分是實現記住密碼的核心思路及實現代碼,其中寫入數據時在用戶點擊登錄事件中完成的,而顯示用戶密碼與用戶名是在窗體加載事件中完成的。當然這種方法也是存在安全問題的,本地文件記住用戶密碼盡管采用了二進制文件形式進行了讀寫,或者復雜路徑,存儲系統盤等形式讓一般用戶找不到文件,或者找到文件讀取不了。但對于有經驗程序員還是可以找到文件并以二進制形式讀取。綜合考慮衡量成本安全,還是可以實用該方法實現記住密碼功能。畢竟面對的絕大多數最終用戶都不是程序員。
本頭條號長期關注于青少年編程資訊分享;編程課程、素材、代碼分享及青少年編程培訓。如果您對以上方面有興趣,可關注該頭條號,如有編程學習問題可以聯系作者,共同探討。