注册 登录
编程论坛 VB6论坛

为什么两段代码效果相同?

qmc1998 发布于 2016-04-21 11:35, 1922 次点击
我对文本框的change事件写了段代码,如下:
Private Sub Text1_Change()
If Len(Text1) > 8 Then        '输入字符串长度不能大于8
Text1.Text = Left(Text1.Text, 8)   '大于8个字符,就截取前8个字符显示
MsgBox ("长度最多只能为8个字符")       '提示用户字符串长度不能大于8
Text1.SelStart = Len(Text1.Text)      '将光标停在字符串的最后位置
End If
End Sub

后来我发现第二行(IF语句)有问题,就做了修改,如下:
Private Sub Text1_Change()
If Len(Text1.Text) > 8 Then        '输入字符串长度不能大于8
Text1.Text = Left(Text1.Text, 8)   '大于8个字符,就截取前8个字符显示
MsgBox ("长度最多只能为8个字符")       '提示用户字符串长度不能大于8
Text1.SelStart = Len(Text1.Text)      '将光标停在字符串的最后位置
End If
End Sub

但是,上面两段程序都正确执行了我的想法,请问是怎么回事?“Text1”和“Text1.Text”是一个意思吗?
3 回复
#2
风吹过b2016-04-21 11:54
很多的控件,都有一个默认属性。
当引用时,没有写属性名时,就引用默认属性。

TEXTBOX 的默认属性就是 TEXT 。
也就是说,你引用
text1.text 与你只引用 text1 时,都只需要它们值的时候,这二个是等价的。
一般情况建议你写全来,目的是为了阅读。
等价是用来兼容和简化的。

#3
qmc19982016-04-21 14:17
回复 2楼 风吹过b
非常感谢,刚学VB ,还没有默认属性这个概念
#4
陌上过客2016-05-11 10:23
不过对于初学者来说,尽量把属性加上,不然后面容易搞混
1