主题:菜鸟请教文本框的validate事件的参数
大懒猫
[专家分:220] 发布于 2009-11-30 16:30:00
书上说文本框的validate事件的参数是keepfocus,即代码框架为:
Private Sub textmm_Validate(keepfocus As Boolean)
End
而我的VB中怎么代码框架为:
Private Sub textmm_Validate(Cancel As Boolean)
End
呀?[em10]
回复列表 (共6个回复)
沙发
一江秋水 [专家分:9680] 发布于 2009-11-30 19:06:00
在帮助文件中是keepfocus,在VB6的事件中是Cancel,教材是照抄帮助文件上的。
其实你别管具体是个什么变量,只要它能够正常发挥作用(保持焦点)就行
板凳
大懒猫 [专家分:220] 发布于 2009-12-01 13:34:00
问题是书上的例题必须是在keepfocus为参数的情况下才能运行得出来,我困惑的是:难道这种事件的默认参数也可以随便改吗?
比如象keypress事件的默认参数keyascii应该是系统自动命名给出的,不能由我们随便改呀!
3 楼
tanchuhan [专家分:15140] 发布于 2009-12-01 14:25:00
形参名是可以随意更改的,只要它的类型对得上就可以了
这里,Cancel = True,你修改形参的值实际上修改的是VB内部调用你时传的实参,在VB内部也许是VBKeepFocus之类的什么其他名字.你修改Cancel的值实际上修改到的是VBKeepFocus的值, VBKeepFoucs = True.
说的有点乱,如果你接触过汇编和C就很容易理解,他们声明一个函数时制定类型就OK了,不用写名字.
4 楼
大懒猫 [专家分:220] 发布于 2009-12-01 16:42:00
还是不懂。那我能把keypress事件的参数keyascii随便改成一个x或者是y吗?这应该和自定义的过程参数命名不同吧,自定义的子过程和函数的形式参数名字才能随便取吧?
5 楼
tanchuhan [专家分:15140] 发布于 2009-12-01 21:19:00
[quote]还是不懂。那我能把keypress事件的参数keyascii随便改成一个x或者是y吗?这应该和自定义的过程参数命名不同吧,自定义的子过程和函数的形式参数名字才能随便取吧?[/quote]
正确,你试一下,绝对OK,只要过程名以及参数类型一致,参数名可以任意修改.
6 楼
tanchuhan [专家分:15140] 发布于 2009-12-01 21:32:00
[quote]问题是书上的例题必须是在keepfocus为参数的情况下才能运行得出来,我困惑的是:难道这种事件的默认参数也可以随便改吗?
比如象keypress事件的默认参数keyascii应该是系统自动命名给出的,不能由我们随便改呀![/quote]
Private Sub Form_KeyPress(ka As Integer)
Debug.Print ka
End Sub
WHY NOT?
我来回复