限制文字框textbox的輸入內容,在很多場景都有應用。舉個例子,現在文字框中,只能輸入0、1、2、3、4、5、6、7、8、9、「|」這11個字元。
限制輸入0-9很容易實現,關鍵是這個「|」符號。它在wpf中對應的是key.oempipe鍵。如果直接允許該鍵輸入,那麼會有「\」這個符號也可以輸入。那麼問題來了,怎麼才能限制呢?很簡單:先確認shift鍵是否已經按下。
關鍵**如下:
1bool shiftkey = (keyboard.modifiers & modifierkeys.shift) != 0;
這樣,當我們確認已經按下了shift鍵時,才允許key.oempiple鍵按下,就可以確保只能輸入「|」符號了。
乙個完整的示例**如下:
1private
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 任...