文本框事件 限制文本框的输入


文本框事件 限制文本框的输入

文章插图
文本框事件(限制文本框的输入)
大家好,我们今天继续讲解类和类模块的知识,从这讲开始我们开始对各种实例的学习,在实例学习的过程中我们要加深对概念的理解,对于几个重要的概念,我们再次回顾一下 。
1 类CLASS: 类是对象的"灵魂" 。对象可以是任何事物,而类不会做任何事情,也不会占用内存,只有当类成为对象并使用Set语句和New关键字实例化为具体对象后,才能做事情并占用内存 。
2 类的属性,用来描述类 。有两种声明方案,一种是在类中直接声明,一种是用Property Let/Set/Get语句声明 。
3 类的方法在类中公共的Sub和Function 。
4 类模块类模块由属性和方法组成,类本身类似于名词;属性可以当作形容词,用来描述类;方法则为动词,执行操作 。
5 类的实例化建立新的类对象 。注意这个对象不一定是实际意义上的实体,但可以作为实体来对待 。
6 声明类的事件:用Event进行声明,但只是声明 。
7 声明类实例化对象变量WithEvents
对于上面的概念要理解,理解后我们要利用上面的知识点来处理我们实际遇到的问题了 。
一 本讲的实例 利用类模块,完成文本框录入只能是数字的校验,如果录入的不是数字那么将被取消录入 。
二 思路分析 在这个实例中,我们要完成对若干个文本框的校验,那么可以在窗体加载时把这些文本框设置成同一个类,然后让这个类共同响应一个类对象的事件,这个事件就是判断输入的值是否为数字 。这样我们就可以达到目的了 。
三 代码实现
1 先新建一个类mytext,在这个类中要声明一个类的对象变量,这个对象是用来响应事件的 。
Public WithEvents Txtbox As MSForms.TextBox
Private Sub Txtbox_Change()
With CreateObject("vbscript.regexp")
.Global = True
.Pattern = "[^0-9.]+"
If .test(Txtbox.Text) Then
Txtbox.Text = .Replace(Txtbox.Text, "")
End If
End With
End Sub
在上述代码中Txtbox是一个类对象的变量,这个变量要相应的是Txtbox_Change事件 。
2 搭建一个窗体,上面有若干个文本框 。同时录入代码
Dim Txt() As New mytext
Private Sub CommandButton1_Click()
End
End Sub
Private Sub UserForm_Initialize()
For Each myctl In Me.Controls
If TypeName(myctl) = "TextBox" Then
m = m + 1
ReDim Preserve Txt(1 To m)
Set Txt(m).Txtbox = myctl
End If
Next
End Sub
Private Sub UserForm_Terminate()
End
End Sub
上述代码中声明了一个类,同时把若干个文本框借助于动态数组,放到了我们期望的类对象中 。这样在代码运行中就可以全部响应类的事件了 。
由于篇幅的关系,代码的讲解和运行在下一讲 。
今日内容回向:
1 属性、事件、方法、类、类模块是如何定义的?
2 让文本框响应同一个事件的思路是什么?
——————————————————————————————————————————–
学习有用的东西需要一种不知足的精神,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里 。待到暮年时再去做自欺欺人的言论 。要努力提高自己,有一颗充满生机的心灵,把握现在,这才是进取 。越是有意义的事情,困难会越多 。愿力决定始终,智慧决定成败 。不管遇到什么,都是风景 。看淡纷争,看轻得失 。茶,满也好,少也好,不要计较;浓也好,淡也好,其中自有值得品的味道 。去感悟真实的时间,静下心,多学习,积累福报 。而不是天天混日子,也不是天天熬日子 。在后疫情更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: