Visual BASIC 3.0中文本框处理技巧五则
#2 一、设置只读文本框。
有时需要在窗口显示一段信息,但又不希望用户去改变它,怎样实现文本的只读呢?我们不但可以利用标签框(label)的只读属性,以标签来代替文本框,实现只读属性,还可以用小程序实现真正的只读文本框。
Sub Text1-KeyPress(keyascii As Integer)
keyascii=0
End Sub
或者也可以用sendkey方法使文本框失去焦点,如以下程序:
Sub Text1-KeyDown(KeyCode As Integer,Shift As Integer)
SendKeys "{tab}"
End Sub
#2 二、限定文本框的输入内容和格式。
以下程序可以限定在文本框中只能输入数字:
Sub Text1-KeyPress(keyascii As Integer)
If keyascii<48 or keyascii>57 Then
Beep
Beep
keyascii=0
End If
End Sub
若想限定文本框的输入格式,可以使用VB的FORMAT函数,也可以使用专业的屏蔽控件(Masked Edit),通过设定屏蔽控件的Mask属性可以对文本框的输入格式作精确控制。
#2 三、为TEXTBOX创建快捷键。
VB规定,添加在窗体上的控件均要在其Tabindex属性中记载其加载顺序,程序运行时焦点按Tabindex属性规定的顺序在控件间跳转。为了简化操作,可在VB中为任何具有caption属性的控件创建快捷键,一般可通过在caption属性中在想作为快捷键的字母前加&号实现。而类似文本框这样的控件没有caption属性,这时可将标签与文本框同时使用,为label创建快捷键,标签Tabindex属性设置比文本框小1,又因为label不能接收按点,焦点会自动跳至文本框。这相当于为文本框创建了快捷键。具体步骤如下:
(1)首先绘制标签,再绘制文本框,或随意绘制各种控制,将标签Tabindex属性设置比文本框小1。
(2)在标签的caption属性中使用“&”号设定快捷键,这样就相当于为文本框设定了快捷键,当你按下标签框的快捷键时,焦点就会跳至文本框上。
#2 四、在设计时实现文本框换行。
对于文本框,在设计时properties窗口不能输入换行符,但可以在程序执行时用代码来换行,即使用ASCII字符的3和10,如下列小程序就可将两行文本放入文本框:
Sub form-load()
NL=chr(13)+chr(10)
text1.text="myname is"&NL&"liu qiang"
End Sub
#2 五、创建口令文本框。
创建口令文本框可用设置属性的方法,也可以通过调用Windows的API应用函数接口来实现。首先,文本框的属性Passwordchar和Maxlength可用来设置口令框。其中Passwordchar指定文本框显示的字符,如指定“*”,则在文本框内显示“*”,Maxlength确定文本框中能输入几个字符。超过Maxlength以后,文本框发出警告声,不能接收更多的字符。若使用Windows应用函数接口,可用GetWindowsLong、SetWindowsLong和SendMessage等接口函数来实现,有兴趣的读者可查阅Windows API函数或VB的联机帮助文件,这里就不一一赘述了。