首页 > 其他分享 >VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)

VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)

时间:2024-10-04 19:21:07浏览次数:11  
标签:VBA Text 文本框 窗体 mytexbox myctl 中类

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)

VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)_VBA



【分享成果,随喜正能量】最好的修行,用心甘情愿的态度,过随遇而安的生活,怀有一颗慈悲、感恩的心灵,修行的路上,处处都吉祥。

第十六讲 利用类方法和事件,让文本框在激活时改变颜色(中)

大家好,在上一讲中我们讲了利用类方法和事件,实现让文本框在激活时改变颜色的第一部分代码:类模块的建立。我们今天继续讲解,这讲讲的是窗体的代码。

3 窗体的构建及代码

为了实现上述的目的,我们首先要构建一个窗体,由文本框和按钮组成:


VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)_Text_02



窗体的代码如下:

Dim mytexbox() As New mytebox

Private Sub CommandButton1_Click()

If TextBox2.Text = "" Then

t1 = 0

Else

t1 = TextBox2.Text + 0

End If

If TextBox3.Text = "" Then

T2 = 0

Else

T2 = TextBox3.Text + 0

End If

If TextBox4.Text = "" Then

T3 = 0

Else

T3 = TextBox4.Text + 0

End If

TextBox1.Text = t1 + T2 + T3

End Sub

Private Sub CommandButton2_Click()

For i = 1 To 4

With UserForm7.Controls("TextBox" & i)

.ForeColor = 0 '(黑色)

.BackColor = 16777215 ' (白色)

.Text = ""

End With

Next

End Sub

Private Sub UserForm_Initialize()

For Each myctl In Me.Controls

If TypeName(myctl) <> "CommandButton" And TypeName(myctl) <> "Label" Then

yy = TypeName(myctl)

m = m + 1

ReDim Preserve mytexbox(1 To m)

Set mytexbox(m) = New mytebox '创建一个新的mycdl类对象

Set mytexbox(m).mBOX = myctl '设置关联

End If

Next

End Sub


代码截图:

VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)_VBA_03



VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)_文本框_04


4 窗体代码的讲解

在上面的语句中有两个按钮的事件,及窗体的构建代码。

1) 窗体的构建函数:

Private Sub UserForm_Initialize()

For Each myctl In Me.Controls

If TypeName(myctl) <> "CommandButton" And TypeName(myctl) <> "Label" Then

yy = TypeName(myctl)

m = m + 1

ReDim Preserve mytexbox(1 To m)

Set mytexbox(m) = New mytebox '创建一个新的mycdl类对象

Set mytexbox(m).mBOX = myctl '设置关联

End If

Next

End Sub

上述代码中我们先对每一个控件进行循环,如果是文本框控件,那么将这个文本框定义为新的类并设置类与mBOX 类事件对象的关联。以便让文本框响应我们需要的动作。

2)“求和”按钮是把后三个的文本框值相加。

3) “重置”按钮是清空文本框内容,包括颜色设置地复位。



今日内容回向:

1 在窗体的构建中要解决什么问题?

2如何让窗体的实际对象响应已经定义了类事件的对象?


本讲内容参考程序文件:VBA-CLASS(1-28).xlsm











VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)_文本框_05



我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)_Text_06


VBA中类的解读及应用第十六讲:利用类方法和事件,让文本框在激活时改变颜色(中)_文本框_07




标签:VBA,Text,文本框,窗体,mytexbox,myctl,中类
From: https://blog.51cto.com/u_16912668/12171452

相关文章