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...