WPF 限制Textbox輸入的內容

2022-03-10 03:37:10 字數 1546 閱讀 1734

限制文字框textbox的輸入內容,在很多場景都有應用。舉個例子,現在文字框中,只能輸入0、1、2、3、4、5、6、7、8、9、「|」這11個字元。

限制輸入0-9很容易實現,關鍵是這個「|」符號。它在wpf中對應的是key.oempipe鍵。如果直接允許該鍵輸入,那麼會有「\」這個符號也可以輸入。那麼問題來了,怎麼才能限制呢?很簡單:先確認shift鍵是否已經按下。

關鍵**如下:

1

bool shiftkey = (keyboard.modifiers & modifierkeys.shift) != 0;

這樣,當我們確認已經按下了shift鍵時,才允許key.oempiple鍵按下,就可以確保只能輸入「|」符號了。

乙個完整的示例**如下:

1

private

void textbox_keydown_event(object

sender, keyeventargs)210

}11else

if (e.key != key.delete && e.key != key.back &&

12 e.key != key.d0 && e.key != key.d1 &&

13 e.key != key.d2 && e.key != key.d3 &&

14 e.key != key.d4 && e.key != key.d5 &&

15 e.key != key.d6 && e.key != key.d7 &&

16 e.key != key.d8 && e.key != key.d9 &&

17 e.key != key.numpad0 && e.key != key.numpad1 &&

18 e.key != key.numpad2 && e.key != key.numpad3 &&

19 e.key != key.numpad4 && e.key != key.numpad5 &&

20 e.key != key.numpad6 && e.key != key.numpad7 &&

21 e.key != key.numpad8 && e.key !=key.numpad9)

2225 }

更新:又出了新的需求!!!!!

要過濾空格輸入。測試了一下,發現空格鍵space、上下左右、pageup、pagedown幾個鍵是keydown事件無法捕獲的——也許可以捕獲,反正我沒有捕獲到。測試還發現keyup和previewkeydown事件都可以捕獲。但是,問題是,使用keyup事件時,即是捕獲到了,這個空格已經輸入了,如果再刪除,也會造成不好的體驗。所以只有使用previewkeydown事件了。基本方式如上面。

c 限制TextBox輸入型別

1.為文字框新增keypress事件 2.輸入限制的原理 將輸入值轉化為acsii的值進行限制,附上acsii表 我猜你看不清這,在上右擊 新標籤頁中開啟 還不行的話 3.原理大致明了了,接下來程式設計 keypress事件 private void textbox1 keypress object...

C 限制TextBox控制項內輸入值的範圍

舉個例子,比如要限制textbox1控制項內只能輸入1 100的數字 先將textbox1的maxlength屬性設定成3 1.首先要限制輸入的只能是數值,不能是字母或其他符號 選擇新增textbox1的keypress事件,如下 private void textbox1 keypress obj...

Wml 的 textbox輸入規則限制及各引數作用

a 任何符號或者大寫字母 不包括數字 a 任何符號或者小寫字母 不包括數字 n 任何數字 不包括符號或者字母 x 任何符號 數字或者大寫字母 不可改變為小寫字母 x 任何符號 數字或者小寫字母 不可改變為大寫字母 m 任何符號 數字或者大寫字母 可改變為小寫字母 或者多個字元,預設為首字大寫 m 任...