vb怎麼控制tetbo只能輸入正整數

時間 2022-02-03 17:20:12

1樓:沙慧月

private sub text1_keypress(keyascii as integer)

if keyascii < 48 or keyascii > 57 then

msgbox "請輸入乙個正整數。", vbcritical, "錯誤"

cancel = true

keyascii=0

end if

end sub

你那錯誤有幾個,

1.text1_validate函式是獲得當前焦點,在你輸入後當前焦點變為下乙個,即空格,所以你會出錯

2.isnumeric(text1)應該為isnumeric(text1.text)這樣才能獲得text1的值,

2樓:匿名使用者

validate事件 在焦點轉換到乙個(第二個)控制項之前發生 也就是和其他控制項切換焦點之前 用此事件來做判斷也未嘗不可

private sub text1_validate(cancel as boolean)

if isnumeric(text1.text) = true then

if fix(text1.text) <> text1.text then

msgbox "請輸入乙個正整數。", vbcritical, "錯誤"

cancel = true

end if

else

msgbox "請輸入乙個正整數。", vbcritical, "錯誤"

cancel = true

end if

end sub

3樓:匿名使用者

private sub text1_keydown(keycode as integer, shift as integer)

if keycode < 48 or keycode > 57 then

msgbox "請輸入乙個正整數。", vbcritical, "錯誤"

cancel = true

end if

end sub

應該使用keydown事件,用keypress的話,小鍵盤輸入時,也會出現錯誤提示。

4樓:匿名使用者

'加上下面的過程

sub text1_keypress(keyascii as integer)

if (keyascii < 48 or keyascii > 57) then

keyascii = 0

end if

end sub

更多vb**,請參閱我的部落格:http://hi.baidu.com/zgmg

vb中,怎麼判定乙個textbox中輸入的是正整數

5樓:匿名使用者

1、開啟vb6.0軟體,新建乙個標準exe工程;

2、在設計介面上新增乙個text控制項和乙個command控制項,text1的屬性text設定為空,command1的caption屬性設定為"判斷";

3、雙擊command1控制項,進入**編輯視窗,在**編輯視窗輸入如下**:

private sub command1_click()dim n as double

n = val(text1.text)

if n > 0 then

msgbox (n & "是乙個正數")

elseif n = 0 then

msgbox ("n等於0")

else

msgbox (n & "是乙個負數")

end if

end sub

4、點選執行工程,在text1中輸入乙個數字,單擊判斷按鈕,判斷該數是正數、0還是負數;

6樓:匿名使用者

private function judgeunsigninteger(strnum as string) as boolean

judgeunsigninteger = false

on error goto check1

dim a as double

dim b as integer

a = cdbl(strnum)

b = cint(strnum)

if len(cstr(a)) = len(cstr(b)) then

if b > 0 then

judgeunsigninteger = true

end if

end if

check1:

end function

這個是判斷函式,是正數返回true,不是返回false

這個判斷對形如22.00也判斷為正確,不知這個算不算正數,如不算,改成如下形式.

private function judgeunsigninteger(strnum as string) as boolean

judgeunsigninteger = false

on error goto check1

dim a as double

dim b as integer

a = cdbl(strnum)

if len(cstr(a)) <> len(text1.text) then

exit function

end if

b = cint(strnum)

if len(cstr(a)) = len(cstr(b)) then

if b > 0 then

judgeunsigninteger = true

end if

end if

check1:

end function

7樓:匿名使用者

先用isnumeric判斷是否為數。

再轉化為int型,然後判斷是否大於0

vb文字框怎樣限制只能輸入數字值

8樓:匿名使用者

1、 新建乙個標準exe程式。

2、 繪製介面,新增乙個 textbox 控制項,改名為 txbnumber。

3、 編寫**。在**視窗中,新增 txbnumber_keypress 事件。

4、查ascii碼表,得到0的ascii碼是48。輸入以下語句:

if keyascii < 48 or keyascii > 57 then keyascii = 0

這條語句用來判斷輸入的字元是否在0-9的範圍,如果不在這個範圍,就把這個輸入的字元遮蔽掉。

5、但這麼做會產生乙個問題,就是使用backspace刪除字元的時候,由於按鍵被遮蔽,無法刪除。只要在上面的語句前在新增一條語句:if keyascii = 8 then exit sub,意思是,如果按了backspace,就直接退出該過程,按鍵就不會被遮蔽了。

6、除錯執行。按f5,在文字框中輸入任意字元,可以看到只有數字能顯示在文字框中。按退格鍵,字元也能正常刪除。

7、 如果輸入的數字可能是小數,那麼還要新增如下**:

if keyascii = 46 and not cbool(instr(txbnumber, ".")) then exit sub

當輸入小數點時,程式判斷文字框中是否已有小數點(因為乙個小數中不可能有多個小數點),如果沒有小數點,則允許輸入。

9樓:丁滿

(二樓那個不能輸入小數點和科學計算,還有其他進製,我重新編了乙個,要事先把文字框的tag屬性設為"0")

private sub text1_change()

if isnumeric(text1.text) then

text1.tag = text1.text

end if

end sub

private sub text1_lostfocus()

if text1.text = "" then text1.text = "0": exit sub

if not isnumeric(text1.text) then

if msgbox("只能輸入數字!單擊「是」重新編輯。", vbyesno) = vbyes then

text1.setfocus

else

text1.text = val(text1.tag)

end if

end if

end sub

如需特殊的數字要求(比如只能輸入整數,不能為0等,請繼續追問,很願意為你解答

10樓:匿名使用者

新增以下事件即可。

private sub text1_keypress(keyascii as integer)

if keyascii < 48 or keyascii > 57 then keyascii = 0

end sub

11樓:

用numericupdown

或者maskedtextbox設定mask = 9999.99

vb中,如何限制輸入的文字框的內容只能是數字數或者字母?

12樓:

這個需要在文字框的keypress事件中對輸入的keyascii進行檢查, 如果不滿足要求則輸入無效,例如只能輸入字母程式如下:

private sub text1_keypress(keyascii as integer)

select case keyascii

case 65 to 90,97 to 122 'a-z, a-z

case else

keyascii=0

end select

end sub

13樓:悠悠周郎

dim 輸入限制 as string = "0123456789.abcdefghijklmnopqrstuvwxyz"

dim 輸入字元 as char = e.keychar

if instr(輸入限制, 輸入字元) <> 0 or e.keychar = chrw(8) then

if 輸入字元 = "." and instr(textbox1.text, 輸入字元) <> 0 then

e.handled = true

else

e.handled = false

end if

end if

這段**寫在文字框的 keypress 事件裡,.net 的,6.0 好像類似,但沒有 e.

handled = true 或者 false,這裡為 true 時改成直接退出過程「exit sub」,false 不寫了好像行,沒有 6.0 沒法給你試試

14樓:學古箏

只能輸入數字

private sub form_resize()if not isnumeric(text1.text) then'如果輸入的不是數字,刪除非數字

text1.text = val(text1.text)text1.selstart = len(text1.text)end if

end sub

private sub text1_change()if not isnumeric(text1.text) then'如果輸入的不是數字,刪除非數字

text1.text = val(text1.text)text1.selstart = len(text1.text)end if

end sub

只能輸入整數

private sub form_resize()tmp = ""

for n = 1 to len(text1.text)if asc(mid(text1.text, n, 1)) > 47 and asc(mid(text1.

text, n, 1)) < 58 then

tmp = tmp & mid(text1.text, n, 1)end if

next

text1.text = val(tmp)text1.selstart = len(text1.text)end sub

private sub text1_change()tmp = ""

for n = 1 to len(text1.text)if asc(mid(text1.text, n, 1)) > 47 and asc(mid(text1.

text, n, 1)) < 58 then

tmp = tmp & mid(text1.text, n, 1)end if

next

text1.text = val(tmp)text1.selstart = len(text1.text)end sub

只輸入字母

private sub text1_change()'65 97 90 122

tmp = ""

for n = 1 to len(text1.text)if (asc(mid(text1.text, n, 1)) > 64 and asc(mid(text1.

text, n, 1)) < 91) or (asc(mid(text1.text, n, 1)) > 96 and asc(mid(text1.text, n, 1)) < 123) then

tmp = tmp & mid(text1.text, n, 1)end if

next

text1.text = tmp

text1.selstart = len(text1.text)end sub

如何在vb中對tetbo控制元件陣列中進行數值計算

毛子文庫 調個得到焦點的函式 text2.getpoint text2 val text1 val text2 第一種方法 private sub text1 click index as integer if index 2 then text1 2 text val text1 0 text v...

如何通過VB控制AutoCAD來進行尺寸標註呢?有哪位高手知道?主要是直線的標註,我畫出直線但無法

人生做回自己 為什麼要通過vb來控制呢?cad本身就有很豐富的標註命令給你用啊!程式設計實現沒有規則是不行的又複雜。命令標註又簡單又靈活。用dim類命令就可以。 劃線前開啟自動標註,畫完再關閉。 句號 命令的英文名稱 vb程式設計怎麼控制cad畫圖,我要用vb語言實現新建cad圖形,並畫出圖形 具體...

用VB控制excel刪除特定的單元格

sub 清除 for each rng in range a1 z10 if rng 位置 then range cells rng.row,rng.column 1 cells rng.row,rng.column 5 rng.offset 1,0 end if next end sub priv...