Vb编程常见的7个问题

这些是我平时碰到总结的一些问题,希望对大家有帮助。

1.关于Dim语句
Dim a, b As Integer
大多数人认为这句话声明了A,B两个变量为整形,但事实上并不是这样,利用vartype来看看
MsgBox VarType(a)
MsgBox VarType(b)
返回值B为2,即整形,这没有问题,不过A返回值是0,即变体型变量。也就是Dim a, b As Integer等同于
dim a
dim b as integer

2.For...Next 结构
Dim N As Integer
For N = 1 To 10
     Me.Caption = N
Next
MsgBox N
这段语句执行完毕后,窗体的标题栏毫无疑问的是10,不过msgbox中会显示几呢?经过我的测试,N的值最终为11,也就是说FOR语句的循环变量最终值=循环的终值+步长,所以我认为上面的语句等同于
Do
     Me.Caption = N
     N = N + 1
Loop Until N > 10

3.Weekday函数
在程序中需要显示星期时,往往会用到weekday函数,这个函数会返回一个1-7的整数值,大多数人(至少我原来都是这样)都会用select case根据不同的数值显示相应的提示,其实完全不用这样,只要在用一个weekdayname函数就可以了,例如MsgBox WeekdayName(Weekday(Date)),就可以直接显示今天的星期

4.Str函数
Dim a As Integer
Dim b As String
Dim c As String
a = 1234
b = "1234"
c = Str(a)
MsgBox Len(b)
MsgBox Len(c)

这个没什么好说的,只是在str函数转换时会自动在前面加上一个空格

4.Trim函数
这个估计是我之前一直理解错了,我曾一直以为trim(a)等同于Replace(a," ","")
而实际上trim等同于ltrim(rtrim(a)),也就是说字符串中间存在的空格通过trim不会被删除

5.DoEvents
当程序进入循环时,整个程序都会停在处理循环上,当循环尚未被处理结束,程序便一直被暂停(假死状态),在这个时间内而有其它事件发生时,VB会视而不见,为了解决这个问题,就要用DoEvents了,看个例子:
Dim i As Integer
For i = 1 To 10000
Label1.Caption = i'一个标签控件
DoEvents'当注释掉这句再看看效果
Next

6.Rnd
首先确认RND的取值范围是大于等于0小于1,也就是说rnd函数可以取到0,但是取不到1
其次看一段代码MsgBox Rnd,运行后记住这个号码,然后程序关掉再打开,再次运行,看看是否这段数字是一样的?此时在代码中加入Randomize再试试看吧

7.if语句
先定义一个函数:
Private Function Test(ByVal Tes As Boolean) As Boolean
MsgBox "Running"
Test = Tes
End Function
然后输入这段代码
If Test(True) or Test(True) Then
     MsgBox "it's true"
Else
     MsgBox "it's false"
End If
运行后会发现Running提示了两次,尽管当第一个表达式为真时,OR的判断结果已经为真,但是其依旧会计算第二个表达式,同理If Test(false) And Test(false) Then的语句也一样会计算两个表达式



[本日志由 admin 于 2010-05-15 10:20 AM 编辑]
上一篇: php 不同编码下的字符串长度区分
下一篇: 谷歌将于下周推出加密式搜索服务
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: vb
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2238
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑