微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题VB编程问与答
栏目硬件周刊
作者李惠萍
发布1998年第46期13版
  1.如何让文本框只接受数字?
  答:使用如下代码,在文本框的按键事件中加入:
  Private Sub Text1_KeyPress(KeyAscii As Integer)
  'KeyAscii 32以下是一些控制键。
  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=&O10 '&O是八进制的表示符号ANum自行转换为8。
  ANum=&HA '&H是十六进制的表示符号ANum自行转换为10。
  如果我们有一个字符变量Astring为八进制的或十六进制的,用ANum="&O"+Astring和ANum="&H"+Astring能将它转换为十进制。
  VB中我没有找到二进制的转换函数,用如下代码可以实现十进制到二进制的转换。
  Option Explicit
  Private 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=0 To SLen-1
  returnNum=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=1(切换为中文输入)
  Text1.IMEMode=2(切换为英文输入)
  Text1.IMEMode=3(关闭中文输入的功能,也就是只能做英文输入。)