分享

文本框的属性和事件

 L罗乐 2017-09-18

从这篇开始,我们将依次来详解用户窗体中的各个控件的常用属性以及事件。今天先从最常用的文本框开始。

顾名思义,文本框就是用来输入文本的。

我们新建一个窗体,拖进来一个文本框,然后按F4,就可以看到他常用的属性了。

当然,如果要全面了解文本框,就直接在VBE界面,按F2,调出对象查看器,然后在输入框里直接输入TextBox,就可以查看到TextBox对象所具有的所有属性,方法和事件了。

常用属性

Enabled

用来设置当前控件是否可用。这个属性对应的是布尔值,Enabled设置为True的话,就代表该控件可用,设置为False,就不可用,并且在运行窗体时,这个控件会显示为浅灰色。
事实上,Enabled属性是绝大多数控件都具有的属性,值的设定也具有普适性。

MultiLine

也是一个布尔值,指定文本框内是否可以换行。如果设置为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来验证一下。

总结一下

  • 文本框控件的常用属性和事件详解



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多