- [图文] 通过VBA程序新填勤哲Excel服务器报表
- [图文] 用VBA程序实现勤哲Excel服务器连续打印
- VB编程步步高-打印篇
- VB编程步步高-表单篇
- VB编程步步高-杂类篇
- vb中使用正则表达式
- 用VB编写标准CGI程序
- 使用ASP、VB和XML建立运行于互联网上的应用程序
- ASP—VBScript及表单
- 客户端用ASP rds VBA参生报表(高级篇)
- VB程序员眼中的C#coolstar
- VB程序员眼中的C#6coolstar
- VB程序员眼中的C#7coolstar
- 用C#和VB.NET实现VS.NET或OfficeXP风格的菜单(一)..
- 用C#和VB.NET实现VS.NET或OfficeXP风格的菜单(三)..
- 代码换肤术(一)——C#和VBNinputer
- [图文] VB.NET上传图片并在DataGrid中显示未知
- [组图] VB.Net编程入门之Hello World 入门篇
- VB.NET中对象的克隆
- 在VB.NET中获得功能加强的分类和查询数组
了解对象的类型
如果你想知道一个对象是否是特殊的类型,请编写下面的代码:
If TypeOf obj Is ListItem Then ...
如果想得到对象类型的名字,使用:
MsgBox "The item is a " & TypeName(obj)
控制长时间的循环
当程序陷入一个很长时间的循环中时,你就不可能点击任何一个命令按钮或者按键。这样对于用户来说,就很不好控制。或许用户不想再执行循环,通过点击Cancel按钮退出呢?怎么解决这个问题?答案是:使用DoEvents命令!就是说,在循环的开始执行DoEvents命令,就象下面的代码一样:
Dim i As Long
For i = 1 To 1000000
DoEvents
...
Next i
实际上,DoEvents命令并不需要放置在第1行,将它放在循环中的任何地方都可以。这样做后,程序的其他部分,比如一个结束循环的命令按钮,就又机会接受点击事件了。
使长循环运行更快
我发现,一般情况下,使用API函数GetInputState来检查程序输入队列的数值是较好的。我不知道为什么If语句提高了代码运行速度,但实际上确实是工作得很好。
因此,可以将下面的代码行
DoEvents
替换为
If GetInputState() Then DoEvents
试一试吧!
其实,这里面的原因在于:DoEvents语句允许任何应用程序执行相关事件,而不仅仅是你自己的程序。加入了GetInputState的判断后,就只接受你自己的程序的事件动作了!
让Select Case更简单
让我们看看下面的例子:通过用户点击不同组合的标签,建立一个字符串:
lbl(0) = "Hello "
lbl(1) = " I注释:m "
lbl(2) = " Happy"
lbl(3) = " Sad"
...
sub lbl_click (index as integer)
string$ = string$+lbl(index).caption
然后,你就必须要编写一系列的select case语句来分析这个字符串 ...
select case string$
case "Hello I注释:m Happy"
do something
case "Hello I注释:m"
this would be an error...
case else
do something else
end select
可以看出,这将非常得复杂,特别是又许多标签而且需要合并操作的合法检查时。
为了解决这个难题,我创建了一个数组,它与标签的数目等长:
arraylbl(n) as integer
数组起始数值为1,然后每个项目的值等于前一个的值乘以2(value*2),就象这样:1 2 4 8 16 32 64 ... 这样,每一对标签的组合都会又一个唯一的数值“
lbl(0) + lbl(1) = 1 + 2 = 3
lbl(0) + lbl(1) + lbl(4) = 1 + 2 + 16 = 19
现在,当点击一个标签时,将它对应的lblarray()数值添加进变量中。这样,基于几个数字,就可以简单地编写select case语句了:
select case IsLegal
case 3
注释: the string was valid
call goodstuff
case 19
注释:the string was valid
call goodstuff
case else
注释:invalid
call nogood
end select
呵呵,有时候,将字符进行数字化,能起到意想不到的好效果!
[编辑:百家电脑学院] [返回学院首页] [返回上一页] []
·上一篇:Java创建文件夹与创建文件 (转) · 下一篇:vb中使用正则表达式

