如何控制TextBox控制項只能輸入數值型字串

2021-04-22 10:41:05 字數 1688 閱讀 1066

public

sub checkkeypress(byval targettextbox as textbox, byval e as system.windows.forms.keypresseventargs, optional

byval minus as

boolean = false, optional

byval decimalcount as

integer = 0)

dim blnhandled as

boolean

blnhandled = false

select

case asc(e.keychar)

case asc("-")                   '   負號:只能在最前頭

ifnot (targettextbox.selectionstart = 0 and minus = true) then blnhandled = true

case asc(".")                   '   小數點:小數字數大於0;在字串中沒有「.」,且加了「.」後小數字能滿足要求

if decimalcount <= 0 then

blnhandled = true

else

ifnot (instr(targettextbox.text, ".") = 0 and (len(targettextbox.text) - targettextbox.selectionstart <= decimalcount)) then blnhandled = true

endif

case 8, 13                      '   退格鍵,回車鍵

case asc("0") to asc("9")       '   0-9

if instr(targettextbox.text, ".") > 0 then

if targettextbox.selectionstart > instr(targettextbox.text, ".") then

'   當前字元位置在小數點後,則小數點後的字元數必須小於小數字

if len(targettextbox.text) - instr(targettextbox.text, ".") >= decimalcount then blnhandled = true

else

'   當前字元位置在小數點前,則小數點後的字元數必須不大於小數字

if len(targettextbox.text) - instr(targettextbox.text, ".") >= decimalcount then blnhandled = true

endif

endif

case

else

blnhandled = true

endselect

e.handled = blnhandled

endsub

呼叫如下:

private sub txtje_keypress(byval sender as object, byval e as system.windows.forms.keypresseventargs) handles txtje.keypress

checkkeypress(sender, e, false, 0)

end sub

TextBox控制項

1 獲取當前行第乙個索引值 int index textbox1.getfirstcharindexofcurrentline 2 獲取總行數 int line textbox1.lines.length 3 獲取指定字元位置檢索行號 int line textbox1.getlinefromcha...

TextBox控制項

第乙個不能在後台操作 文字框的多種形式 l 單行文字框 textmode singleline l 多行文字框 textmode mulitline l 密碼文字框 textmode password 文字框需要掌握的屬性 text 設定或獲取文字內容 textmode singleline,mul...

TextBox 控制項

textbox控制項上有乙個箭頭,multiline 屬性,是多行顯示 textbox控制項有 system.windows.textbox 類提供,提供了基本的文字輸入和編輯功能 屬性 acceptsretun控制按下回車鍵時顯示是換行還是啟用按鈕 false換行false是啟用 characte...