文本框的属性和事件
从这篇开始,我们将依次来详解用户窗体中的各个控件的常用属性以及事件。今天先从最常用的文本框开始。
顾名思义,文本框就是用来输入文本的。
我们新建一个窗体,拖进来一个文本框,然后按F4,就可以看到他常用的属性了。
当然,如果要全面了解文本框,就直接在VBE界面,按F2,调出对象查看器,然后在输入框里直接输入TextBox,就可以查看到TextBox对象所具有的所有属性,方法和事件了。
常用属性
Enabled
用来设置当前控件是否可用。这个属性对应的是布尔值,Enabled设置为True的话,就代表该控件可用,设置为False,就不可用,并且在运行窗体时,这个控件会显示为浅灰。
事实上,Enabled属性是绝大多数控件都具有的属性,值的设定也具有普适性。
MultiLine
textbox控件边框设置也是一个布尔值,指定文本框内是否可以换行。如果设置为True,就可以换行,如果设置为False,即使输入的文本中含有回车,所有的文本也会挤在一行。
EnterKeyBehavior
指定按下回车键后,是在文本框内部换行,还是直接跳到下一个控件。
如果这个值设置为True,那么就是内部换行。但要注意的是,这个设置必须配合MultiLine属性来使用。如果MultiLine设置为False,不管EnterKeyBehavior设置为什么,按下回车就会自动跳到下一个控件。
PasswordChar
用来输入密码时使用的,如果这个属性有设置,那么无论你在文本框中输入什么内容,都会显示你设置的字符。
MaxLength
文本框可以允许字符的最大长度。默认设为0,表示长度不限。
如果有设置,那么超过指定的最大长度之后,就不可以再输入了。
常用事件
BeforeUpdate
文本框中的文字被修改之前触发这个事件。可以用于判断所输入的文字是否合格。这个事件有一个Cancel参数,和其他事件中的Cancel一样,可以用来强制取消更新。
例如,下面一个例子就用来判断输入的文本是否最少有5个字符。这种套路相信大家在网上发帖时经常碰到。
Private Sub TxtWelcome_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)    If Len(Me.TxtWelcome.Value) < 5 Then        MsgBox 'minimum 5 chars are required !'        Cancel = True    End If End Sub
AfterUpdate
看这个事件的名字就知道,这是文本框中的内容修改之后触发这个事件。这个事件比较简单,就不写代码来举例了
Change
当文本框中的内容发生了变化时,所触发的事件。
这里还是要注意Change和AfterUpdate的区别。基本上可以这么理解,当焦点还在文本框里,改变了文本框里的内容,就会触发Change事件。当所有的改变完成之后,文本框要失去焦点了,会触发AfterUpdate事件。
下面这个例子用来限制用户不能输入空格
Private Sub TxtWelcome_Change()    With Me.TxtWelcome        If InStr(1, .Value, ' ') Then            .Value = Replace(.Value, ' ', '')            MsgBox 'space not allowed!'        End If    End With End Sub
其实上面这个例子里面有一个小漏洞,或者说一个要注意的问题,不知道大家看出来了没?看出来的请在文章末尾留言吧。
Enter/Exit
在文本框接收到焦点之前,触发Enter事件。释放焦点之前,触发Exit事件。
在一个完整的向文本框输入内容的过程中,上面这些事件的触发顺序如下:
Enter→ Change → BeforeUpdate → AfterUpdate → Exit
大家可以为每个事件都写一个Msgbox来验证一下。
总结一下
文本框控件的常用属性和事件详解

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。