使用正則表達(dá)式限制winform中的TextBox只能輸入兩位小數(shù)
在Winform程序中,有時(shí)我們需要讓用戶輸入特定的數(shù)據(jù)。例如,在一個(gè)文本框中,要求用戶輸入一個(gè)兩位小數(shù)。為了實(shí)現(xiàn)這個(gè)功能,我們可以使用正則表達(dá)式。下面通過一個(gè)小實(shí)驗(yàn)來介紹如何實(shí)現(xiàn)。創(chuàng)建Winform
在Winform程序中,有時(shí)我們需要讓用戶輸入特定的數(shù)據(jù)。例如,在一個(gè)文本框中,要求用戶輸入一個(gè)兩位小數(shù)。為了實(shí)現(xiàn)這個(gè)功能,我們可以使用正則表達(dá)式。下面通過一個(gè)小實(shí)驗(yàn)來介紹如何實(shí)現(xiàn)。
創(chuàng)建Winform程序
首先,創(chuàng)建一個(gè)簡(jiǎn)單的Winform程序,只包含一個(gè)輸入框。該輸入框?qū)⒂糜谟脩糨斎霐?shù)據(jù)。如下圖所示:
允許任意輸入的問題
然而,運(yùn)行程序后發(fā)現(xiàn),此時(shí)用戶可以輸入任意字符,甚至是漢字。如下圖所示:
使用KeyPress事件限制輸入
接下來,我們開始使用編程來限制輸入的小數(shù)位數(shù)。選中輸入框,并在事件列表中選擇KeyPress事件。雙擊該事件,如下圖所示:
自動(dòng)生成KeyPress事件代碼
雙擊KeyPress事件后,系統(tǒng)將自動(dòng)生成KeyPress事件的代碼。該事件表示,在用戶按下鍵盤上的某個(gè)鍵時(shí)觸發(fā)。如下圖所示:
實(shí)現(xiàn)限制輸入的主要思想和代碼解釋
我們來看一下代碼的主要思想和解釋:
1. 通過設(shè)置e.Handled為true或false來控制是否允許輸入。如果設(shè)置Handle為false,表示該事件未處理,交給系統(tǒng)處理,即按鍵允許;如果設(shè)置Handle為true,表示該事件已經(jīng)處理,不交給系統(tǒng)處理,即按鍵禁止。
2. 根據(jù)鍵盤輸入的字符,與正則表達(dá)式進(jìn)行匹配。如果匹配,則返回false;如果不匹配,則返回true。整體代碼基于以上兩點(diǎn)進(jìn)行編程,最終實(shí)現(xiàn)輸入兩位小數(shù)的效果。
如下圖所示:
測(cè)試結(jié)果
運(yùn)行程序后,當(dāng)輸入兩位小數(shù)后繼續(xù)輸入其他字符,文本框?qū)⒉蛔鋈魏雾憫?yīng)。如下圖所示: