넳 넲

VB编程小技巧

网站首页  ꄲ  教育技术  ꄲ  技术交流  ꄲ  VB编程小技巧
ꄹ 当前位置:

1 文本框内容的自动选择。


在软件安装等一些场合需要将文本框中的内容自动选择,比如选择确省安装路径,在VB中可用如下的事件驱动代码:


sub text1_getfocus()


text1.selstart=0 ’选择起始位置


text1.sellength=65000 ’选择长度


end sub


sellength接近文本框允许的最大长度(65535),这样做是为了


强迫VB使用文本的实际长度。


2 防止自身多次运行。


由于WINDOWS的多任务处理功能, 有些程序可能打开后忘记了,下次用时还可能再打开,这样做会占用系统资源降低系统效率。为了防止自身被多次运行,可利用VB应用对象提供的PrevInstance属性来检测内存中是否已有一个自身的副本,若有则给出提示后结束。一般将检测代码放在FORM_LOAD()中,因为程序一运行就要检测。


代码如下:


sub form_load()


if App.PrevInstance then


msg$=App.exename & ”has already run”


msgbox msg$,48 ’给出程序已运行的提示和一惊叹号以示警告


end


endif


end sub


3 格式化输入。


在数据输入过程中,有些数据要求一定的格式,比如限制输入的只能为数字或英文字符,这可用VB的格式输入文本框来实现。它与文本框(TEXT BOX)功能基本相似,但多了一个MASK属性,MASK属性常用的设定如下:


#—限定仅能输入数字0~9;


A— 限定输入为英文字符及数字;


?—限定仅能输入英文字符;


.—限定小数点位置;


:—限定时间分隔号;


/—限定日期分隔号


不需编写代码,只要在设计时将格式化文本框对象(MASKED EDIT)的MASK属性设计好所需格式即可。比如 ## - ## - ## 可输入12-11-96。


4 用MSGBOX函数设计版权信息。


MsgBox函数可用来设计简易的版权信息,它只能显示文本,如果要求不高的话可采用它,优点是非常方便,比如在菜单ABOUT项中显示版权信息。


MsgBox函数的用法如下:MsgBox msg [, [type][, title] ]


msg —需要显示的文字信息,如版权信息。


type—按钮显示选择项。


如 0 只显示 OK按钮(确省选择),4 显示 Yes 和 No 按钮


title—标题文字信息。


MSGBOX最多能显示1024个字符, 超出的将被截去;它可自动换行,如果你想强制换行的话需要在换行处加入换行符CHR(10)。


例子:


Sub Form_Click ()


Msg1 = ” Copyright (c) 1996” & Chr(10) & ”Ver


1.0 ” ’分两行显示


MsgBox Msg1, 0, ”Copyright demo” ’只显示一个OK按钮


End Sub


使用 IIF 和 SWITCH 以精减代码


在很多地方你都可以使用一个更紧凑的 IIf 函数来代替 If...Else...Endif 的结构: 例:返回两个值中较大的一个 maxValue = IIf(first >= second, first, second)


Switch 则是一个很少使用的函数,可是在很多方面它都提供比 If...ElseIf 结构更好的 例:判断 "x" 是正、负还是 null?


Print Switch(x0,"正", True, "Null")


变量的地址


VB5 内置了一个 VarPtr 函数,可是此函数在 VB4 中没有提供。可是你知道吗?VB4 的运行库中已经包含了此函数。只是在用它之前,我们需要声明一下:


#If Win16 Then


Declare Function VarPtr Lib "VB40016.DLL" (variable As Any) As Long


#Else


Declare Function VarPtr Lib "VB40032.DLL" (variable As Any) As Long


#End If


此函数在传递一个 Type 结构(如果此结构要求其一段是另一个变量或记录的地址)给一个外部的 API 程序时十分有用。


向文件中写入非 ASCII 字符


如何向一个文件中写入非ASCII字符(ASCII码在128-255之间)?这在 VB3 中按常规方法就可以很好处理。但是,自 VB4 起,微软引入 Unicode 后,此问题就显得有些麻烦。方法如下:


Dim a As Byte \\'如果你不用 Unicode,微软推荐使用 Byte 类型替换 String 类型


a=&HF5 \\'此处直接给处 ASCII 码即可


Open "test.dat" For Binary As #1


Put #1, , a


Close (1)


VB中感叹号“!”与圆点“.”的用法差异


在Visual Basic中,惊叹号“!”与圆点“.”都用于给对象命名,但两者语法上却存在很大的区别,这点在编程时尤其需要注意。


圆点操作符“.”用来表示对象的属性和方法,在引用时,需要用到对象的Name、圆点和需要的属性或方法。例如要引用文本框Textl中的文本属性时可用reponse$=Text1.Text,再如要改变Form1窗体返回或读取对象高度的单位时用Form1.ScaleHeigh=2000表示。


感叹号“!”常用于当一个控件作为一个特性访问的情况下,例如引用Fomr2中Text1文本框文本属性时,可采用response$=Form2!text1.text语法格式。

2020年4月9日 10:23
ꄘ浏览量:0
教育技术