winform textbox只能輸入數字(在VB中限制TextBox只能輸入數字包括粘貼)

導讀 今天小出來為大家解答以上問題。winform textbox只能輸入數字,在VB中限制TextBox只能輸入數字包括粘貼很多人還不知道,現在讓我們一起來

今天小出來為大家解答以上問題。winform textbox只能輸入數字,在VB中限制TextBox只能輸入數字包括粘貼很多人還不知道,現在讓我們一起來看看吧!

1、首先我們最好添加一個模塊,這樣無論你需要實現多少個TextBox控件,都只能輸入數字,直接調用。

2、打開Modoule1模塊,首先定義三個全局變量來保存TextBox的當前狀態,代碼如下:

3、LastText變量用于記錄TextBox的最后一次正確輸入。

4、' LastLen變量用于保存上次正確輸入文本框時的字符串長度,以便恢復光標的最后位置。

5、“NotText”變量用于防止CPU在撤銷期間因兩次檢測而負擔過重。

6、PublicLastTextAsString,LastLenAsInteger,NotTextAsBoolean

7、既然我的方法是檢測輸入為非數值,也就是撤銷到之前的狀態,那么我們是給需要限定的TextBox賦一個正確的初始值,還是寫成一個模塊,可以方便所有的TextBox調用。代碼如下:

8、function initialize(MyTextAsTextBox)

9、馬頔元

10、a=我的文本“1”

11、如果是數字(a),則my text=' 0 ' '確保TextBox的初始值是一個數字。

12、LastText=MyText

13、LastLen=Len(MyText)

14、NotText=False

15、結束函數

16、然后是核心代碼,就是檢測輸入或者粘貼到文本框中的內容是否是數字。通用代碼也寫在Modoule1模塊中,代碼如下:

17、function only numbers(MyTextAsTextBox)

18、ifnottextthenottext=false : exit function

19、馬頔美元,b美元,c%,d%

20、a=我的文本。文本

21、b=a

22、c=Len(MyText。正文)

23、保存光標的位置。互聯網上很多限制數字輸入的代碼,要么屏蔽退格小數點等按鍵,要么改變光標位置。

24、d=我的文本。所選文本的起點

25、字符D是十進制數的結束標記,字符E是科學計數的形式。下面兩行擋住了這兩個字母。如果需要使用科學計數,可以靈活修改。

26、a=Replace(a,' E ','',1,-1,1)

27、a=Replace(a,' D ','',1,-1,1)

28、擋住字母D和E會使光標位置的判斷同時出錯。

29、IfabThend=d-1

30、這樣,給B賦值就是考慮負數和小數。如果是正整數,去掉這一行和前一行。

31、b=一個“1”

32、是否允許文本框的內容為空?在這里,你可以自己設置。我被允許在這里空著。

33、Ifa=' '退出功能

34、之所以使用錯誤的方法是為了撤銷上一個正確的方法,是因為關鍵檢測方法無法檢測到直接粘貼的數據。

35、如果數字(b)那么

36、LastText=a

37、LastLen=Len(a)

38、其他

39、NotText=True

40、a=最后文本

41、d=d LastLen-c

42、結束條件

43、恢復光標的位置

44、我的短信。Text=a

45、我的短信。SelStart=d

46、結束函數

47、我們把核心代碼都寫成模塊了,看不懂也沒關系。直接復制粘貼我寫的模塊就行了。在表單中,你只需要調用我寫的兩個模塊。例如,如果要將Text1限制為僅輸入數字,可以添加以下代碼:

48、PrivateSubText1_Change()

49、OnlyNumbersMe。文本1

50、末端接頭

51、PrivateSubText1_GotFocus()

52、首字母縮寫。文本1

53、末端接頭

54、同樣,如果有文本

55、2Text3等TextBox需要限定,調用我寫的模塊就行了。甚至可以調用Form2中的Text2,如下所示:

56、PrivateSubText2_Change()

57、OnlyNumbersForm表單

58、文本2

59、末端接頭

60、PrivateSubText2_GotFocus()

61、初始化表單

62、文本2

63、末端接頭

64、然后,我隨便畫了兩個TextBox,可以看到Text1的輸入限制并不影響Text2的輸入限制:

本文到此結束,希望對大家有所幫助。

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!