翻譯 自定義TextBox數字和文字驗證

2022-07-16 12:00:15 字數 2423 閱讀 6140

numbers and characters only textbox validation in c#

源文件<

>

翻譯:白水(敏捷學院)

介紹

在gui

開發中,

處理文字框

驗證是一種很常見的任務。通常情況下,處理乙個

textbox

只允許使用者

輸入數字(無論是整數或實)或字母字元

,我在網路上找到的**用正規表示式處理這個問題,它工作得很好,但有一定的侷限性。在這篇文章中,我

使用另外一種方法

,方便和靈活的方式處理的

textbox驗證。

**結構

定義一下

3個方法在

textbox

的textchanged

事件觸發時使用:

validatetextinteger()

validatetextdouble()

validatetextcharacter()

validatetextinteger()

僅允許使用者輸入

integer

型別的值,

validatetextdouble

僅允許使用者輸入

double

型別的值,

validatetextcharacter()

僅允許使用者輸入字元。

要使用這些驗證,只需要在

textchanged

事件選擇對應的方法即可

以上3個方法都是正常的驗證功能,另外3個是更加靈活的自定義驗證方法,我們將在自定義驗證部分討論。

validatetextinteger

首先使用parse方法來轉換textbox中的文字,如果是integer型別則不會有任何變化。但是如何parse方法轉換失敗丟擲乙個異常,**將捕獲異常,然後定位textbox中的游標回到上乙個位置,並刪除最後輸入的字元。當textbox只有乙個"-"時不執行parse方法。

private void validatetextinteger(object sender, eventargs e)

}catch (exception)

catch (exception) }}

示例:輸入

處理後11.

1134a5

3455_67

567validatetextdouble

double型別的驗證與integer的處理方式相似

private void validatetextdouble(object sender, eventargs e)

}catch (exception)

catch (exception) }}

示例 :

輸入處理後

23.97.

23.97

0d.01

0.01

2$16

216validatetextcharacter

對於字元的驗證定義了乙個 textcontainsunalowedcharacter()方法來處理不允許輸入的字元,如果檢測到不允許輸入的字元將被移除並重新定位游標位置。

private void validatetextcharacter(object sender, eventargs e)

textbox t = (textbox)sender;

try//not allowing numbers

char unallowedcharacters = ;

if (textcontainsunallowedcharacter(t.text,unallowedcharacters))

int cursorindex = t.selectionstart - 1;

t.text = t.text.remove(cursorindex, 1);

//align cursor to same index

t.selectionstart = cursorindex;

t.selectionlength = 0;

catch(exception)

private bool textcontainsunallowedcharacter(string t, char unallowedcharacters)

for (int i = 0; i < unallowedcharacters.length; i++)

if (t.contains(unallowedcharacters[i]))

return true;

return false;

示例:輸入

處理後ab6cd

abcd

8tyhg

tyhg

%$#@6

TextBox控制項自定義樣式

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...

翻譯 使用者介面和產品自定義

翻譯 cathy 英文原文 總結 使用者自定義介面的網頁與一般網頁可用性程度相當。但是自定義產品的網頁中複雜的工作流程大大降低了可用性。基於網頁的自定義並不是什麼新的東西了,早在九十年代中期,就有人將自定義視為網際網路發展的必然結果以及商業弊端的萬靈藥。很明顯濾掉廣告以後能夠有效實施網路自定義可以為...

可自定義補全演算法的TextBox控制項

net framework中system.windows.froms.textbox有補全功能,但只有有限的幾種模式。如果想輸入拼音,補全列表提示漢字,這是做不到的。於是,你可以使用我的customizablecompletetextbox。該控制項的乙個重要成員是completing事件。你可以訂...