在Visual Basic中,文本框(TextBox)是最常用的控件,熟练运用文本框是开发出高质量的应用程序的基础。笔者在从事应用程序开发中,摸索出有关文本框的应用技巧,写出来与VB爱好者共享。
1、设置只读文本框
有些时候在窗口显示一段信息,但又不希望用户去改变它,怎样实现文本的只读呢?首先,我们可以利用标签框(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
或者直接设置控件的属性来实现,具体操作如下:
设置Text1.Enabled=True,这样设置后Text1无法获得焦点
设置Text1.Locked=True,这样设置后Text1可以获得焦点
2、限定文本框的输入内容和格式
以下程序可以实现限定文本框只能输入数字:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Then
KeyAscii = 0
MsgBox "请输入数字"
End If
End Sub
若想限定文本框输入格式,可以使用VB的FORMAT函数,也可以使用专业版的屏蔽控件(Masked Edit),通过设定屏蔽控件的Mask属性可以对文本框的输入格式作精确控制。
3、为TextBox创建快捷键
VB规定,添加在窗体上的控件均在其Tabindex属性中记载其加载顺序,程序运行时焦点按Tabindex属性规定的顺序在控件间跳转。而为了简化操作,可VB中为任何具有caption的属性的控制创建快捷键,这通过caption属性中在想作为快捷键的字母前加&号实现。但有一个问题值得注意,而类似文本框这样的控件无caption这样的属性,这时可将标签与文本框同时使用。为lable创建快捷键,标签Tabindex属性设置比文本框小1,又因为label不能接收按点,焦点会自动跳至文本框。这相当于为文本框创建了快捷键。具体步骤如下:
(1)首先绘制标签,再绘制文本框。或随意绘制各种控制,将标签Tabindex属性设置比文本框小1
(2)在标签的caption属性中使用“&”号设定快捷键
这样就相当于为文本框设定了快捷键,当你按下标签框的快捷键时,焦点就会跳至文本框上。
4、在设计时实现文本框换行
对于文本框,在设计属性窗口不能输入换行符,但可以再程序执行时用代码来换行,即使用ASCII字符的13和10,如下列小程序就可将两行文本放入文本框:
Sub form_load( )
NL=chr(13)+chr(10)
text1.text=“my name is”& NL &“liu qiang”
End sub
5、创建口令文本框
创建口令文本框可用设置属性的方法,也可以通过调用WINDOWS的API应用函数接口来实现。首先,文本框的属性Passwordchar和maxlength可用来设置口令框。其中Passwordchar指定文本框显示的字符,如指定“*”,则在文本框内显示“*”,Maxlength确定文本框中能输入几个字符。超过Maxlength以后,文本框发出警告声,不能接收更多的字符。若使用WINDOWS应用函数接口,可用GetWindowLong、SetWindowsLong和SendMessage等接口函数来实现,有兴趣的读者可查阅Windows API函数手册或VB的联机帮助文件,这里就不一一赘述了
1、设置只读文本框
有些时候在窗口显示一段信息,但又不希望用户去改变它,怎样实现文本的只读呢?首先,我们可以利用标签框(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
或者直接设置控件的属性来实现,具体操作如下:
设置Text1.Enabled=True,这样设置后Text1无法获得焦点
设置Text1.Locked=True,这样设置后Text1可以获得焦点
2、限定文本框的输入内容和格式
以下程序可以实现限定文本框只能输入数字:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Then
KeyAscii = 0
MsgBox "请输入数字"
End If
End Sub
若想限定文本框输入格式,可以使用VB的FORMAT函数,也可以使用专业版的屏蔽控件(Masked Edit),通过设定屏蔽控件的Mask属性可以对文本框的输入格式作精确控制。
3、为TextBox创建快捷键
VB规定,添加在窗体上的控件均在其Tabindex属性中记载其加载顺序,程序运行时焦点按Tabindex属性规定的顺序在控件间跳转。而为了简化操作,可VB中为任何具有caption的属性的控制创建快捷键,这通过caption属性中在想作为快捷键的字母前加&号实现。但有一个问题值得注意,而类似文本框这样的控件无caption这样的属性,这时可将标签与文本框同时使用。为lable创建快捷键,标签Tabindex属性设置比文本框小1,又因为label不能接收按点,焦点会自动跳至文本框。这相当于为文本框创建了快捷键。具体步骤如下:
(1)首先绘制标签,再绘制文本框。或随意绘制各种控制,将标签Tabindex属性设置比文本框小1
(2)在标签的caption属性中使用“&”号设定快捷键
这样就相当于为文本框设定了快捷键,当你按下标签框的快捷键时,焦点就会跳至文本框上。
4、在设计时实现文本框换行
对于文本框,在设计属性窗口不能输入换行符,但可以再程序执行时用代码来换行,即使用ASCII字符的13和10,如下列小程序就可将两行文本放入文本框:
Sub form_load( )
NL=chr(13)+chr(10)
text1.text=“my name is”& NL &“liu qiang”
End sub
5、创建口令文本框
创建口令文本框可用设置属性的方法,也可以通过调用WINDOWS的API应用函数接口来实现。首先,文本框的属性Passwordchar和maxlength可用来设置口令框。其中Passwordchar指定文本框显示的字符,如指定“*”,则在文本框内显示“*”,Maxlength确定文本框中能输入几个字符。超过Maxlength以后,文本框发出警告声,不能接收更多的字符。若使用WINDOWS应用函数接口,可用GetWindowLong、SetWindowsLong和SendMessage等接口函数来实现,有兴趣的读者可查阅Windows API函数手册或VB的联机帮助文件,这里就不一一赘述了