|
本帖最后由 suye1010 于 2014-1-19 17:00 编辑
求教老师:窗体中有4个文字框(TextBox),我想对它们在内容输入时,做些限制(比如修改文字框的值时执行TextBox对象的Change事件过程),问题是对每一个文字框进行设置的话,代码多次重复,所以希望能通过类模块或者其他的循环语句进行编辑,我本人对类模块不会,正在学习中。还请老师给予帮助。谢谢!
附代码如下:
'修改第一个文本框的值时执行,此过程是TextBox1对象的Change事件过程
Private Sub TextBox1_Change()
If Len(TextBox1) > 0 Then '如果文本框有字符
'如果文本框的右边一位是0到9的数字,以及“.?/\<>,();'@#$%^&!、。_+:""|{}[]-”之类的标点符号
If Right(TextBox1, 1) Like "[0-9.?/\<>,();'@#$%^&!、,。_+:""|{}]" Or _
Right(TextBox1, 1) = "[" Or Right(TextBox1, 1) = "]" Or Right(TextBox1, 1) = "-" Then
MsgBox "请不要输入数字和标点。", vbOKOnly + vbInformation, "友情提示" '提示用户
TextBox1.Value = Left(TextBox1, Len(TextBox1) - 1) '删除右边一位
End If
End If
End Sub
窗体中的代码: - Dim TBS(1 To 4) As New TexboxChangeClass
- Private Sub UserForm_Initialize()
- For i = 1 To 4
- Set TBS(i).TB = Me.Controls("Textbox" & i)
- Next i
- End Sub
复制代码2. 类模块TexboxChangeClass中的代码 - Public WithEvents TB As MSForms.TextBox
- Private Sub TB_Change()
- If Len(TB) > 0 Then '如果文本框有字符
- '如果文本框的右边一位是0到9的数字,以及“.?/\<>,();'@#$%^&!、。_+:""|{}[]-”之类的标点符号
- If Right(TB, 1) Like "[0-9.?/\<>,();'@#$%^&!、,。_+:""|{}]" Or _
- Right(TB, 1) = "[" Or Right(TB, 1) = "]" Or Right(TB, 1) = "-" Then
- MsgBox "请不要输入数字和标点。", vbOKOnly + vbInformation, "友情提示" '提示用户
- TB.Value = Left(TB, Len(TB) - 1) '删除右边一位
- End If
- End If
- End Sub
复制代码
关于类模块应用的实例.zip
(14.45 KB, 下载次数: 9)
|
|