1.如何讓文本框只接受數字?
答:使用如下代碼,在文本框的按鍵事件中加入:
PrivateSubTextl_KeyPress(KeyAsciiAsInteger)
IfkeyAscii>=33Then
IfKeyAscii<=vbkey9AndKeyAscii>=vbKey0Then
Else'把KeyAscii設為0就是取消輸入。
KeyAscii=0
MsgBox”不要輸入數字!”
EndIf
EndIf
EndSub
注意:KeyAscii鍵值與KeyCode相同,我們可以查看KeyCode值,不過有些KeyCode鍵值必須在KeyDown和KeyUp中才有效,在KeyPress的KeyAscii中沒用。利用KeyAscii=0的方式在KeyPress中有用,但在KeyDown中讓KeyCode=0就不行了。
2.VB中的進制轉換是怎樣的?
答:用函數Oct()將十進制位數轉換為八進制,用Hex()將十進制位數轉換為十六進制,不過值得注意的是轉換後數字型變為字符型。如果是一個變量我們可以用如下代碼完成十進制向其他進制轉換的目的。
dimAnumaslong
Anum=&010'&0是八進制的表示符號Anum自行轉換為8。
Anum=&HA'&H是十六進制的表示符號Anum自行轉換為10。
如果我們有一個字符變量Astring為八進制的或十六進制的,用Anum=”&0”+Astring和Anum=“&H”+Astring能將它轉換為十進制。
VB中我沒有找到二進制的轉換函數,用如下代碼可以實現十進制到二進制的轉換。
OptionExplicit
PtivateFunctiOnTenturnTwo(ByValvarNumAsLong)
DimreturnStringAsString,ModNumAsInteger
DOWhilevarNum>0
ModNum=varNumMod2
varNum=varNum2
returnString=Trim(Str(ModNum)) returnString
Loop
TenturnTwo=returnString
EndFunction
PrivateFunctionTwoturnTen(ByValvarStringAsString)
DimSlenAsLong,IAsLong,
returnNumAsLong
Slen=Len(varString)
ForI=oToSlen-1
returmNum=returnNum+Val(Mid(varString,I+1,1))*(2^(Slen-I-1))
Next
TWoturnTen=returnNum
EndFunction
3.在VB5.0下,如何用程序改變中文與英文的輸入方式?
答:VB5.0在可以輸入文字的地方(如TextBox,ListBox,ComBox...等)有一個輸入法切換屬性IMEMode。我們可以先用ImeStatus函數來檢測當前的輸入狀態,並用IMEMode來控制其輸入狀態。下面是IMEMode的屬性值。
Text1.IMEMode=0(預定值)
Text1.IMEMode=l(切換為中文輸入)
Text1.IMEMde=2(切換為英文輸入、
Text1.IMEMde=3(關閉中文輸入的功能,也就是只能做英文輸入。)->