VB 程序设计

10个成员

VB编程问与答

发表于 2016-12-25 3647 次查看
1.如何让文本框只接受数字?
答:使用如下代码,在文本框的按键事件中加入:
Private Sub Textl_KeyPress(KeyAscii As Integer)
If keyAscii>=33 Then
If KeyAscii<=vbkey9 And KeyAscii>=vbKey0 Then
Else '把KeyAscii设为0就是取消输 入。
KeyAscii=0
MsgBox ”不要输入数字!”
End If
End If
End Sub
注意:KeyAscii键值与KeyCode 相同,我们可以查看KeyCode值,不 过有些KeyCode键值必须在 KeyDown和KeyUp中才有效,在 KeyPress的KeyAscii中没用。利用 KeyAscii=0的方式在KeyPress中有 用,但在KeyDown中让KeyCode=0 就不行了。
2.VB中的进制转换是怎样的?
答:用函数Oct()将十进制位数 转换为八进制,用Hex()将十进制位 数转换为十六进制,不过值得注意的 是转换后数字型变为字符型。如果是 一个变量我们可以用如下代码完成十 进制向其他进制转换的目的。
dim Anum as long
Anum=& 010 '&0是八进制的 表示符号Anum自行转换为8。
Anum=&HA '&H是十六进制的 表示符号Anum自行转换为10。
如果我们有一个字符变量Astring 为八进制的或十六进制的,用Anum=” &0” + Astring和Anum=“&H”+Astring 能将它转换为十进制。
VB中我没有找到二进制的转换函 数,用如下代码可以实现十进制到二进 制的转换。
Option Explicit
Ptivate FunctiOn TenturnTwo (ByVal varNum As Long)
Dim returnString As String,ModNum As Integer
DO While varNum>0
ModNum=varNum Mod 2
varNum=varNum\2
returnString=Trim(Str (ModNum))+returnString
Loop
TenturnTwo=returnString
End Function
Private Function TwoturnTen (ByVal varString As String)
Dim Slen As Long,I As Long,
returnNum As Long
Slen=Len(varString)
For I=o To Slen-1
returmNum=returnNum +Val(Mid (varString,I+1,1))*(2^(Slen-I-1))
Next
TWoturnTen=returnNum
End Function
3.在VB5.0下,如何用程序改 变中文与英文的输入方式?
答:VB5.0在可以输入文字的地 方(如TextBox,ListBox,ComBox... 等)有一个输入法切换属性IMEMode。我 们可以先用ImeStatus函数来检测当前的 输入状态,并用IMEMode来控制其输入 状态。 下面是IMEMode的属性值。
Text1.IMEMode=0(预定值)
Text1.IMEMode=l(切换为中文输 入)
Text1.IMEMde=2(切换为英文输 入、
Text1.IMEMde=3(关闭中文输入 的功能,也就是只能做英文输入。)

 

发表回复
你还没有登录,请先登录注册