回 帖 发 新 帖 刷新版面

主题:菜鸟请教文本框的validate事件的参数

书上说文本框的validate事件的参数是keepfocus,即代码框架为:
Private Sub textmm_Validate(keepfocus As Boolean)
End
而我的VB中怎么代码框架为:
Private Sub textmm_Validate(Cancel As Boolean)
End
呀?[em10]

回复列表 (共6个回复)

沙发

在帮助文件中是keepfocus,在VB6的事件中是Cancel,教材是照抄帮助文件上的。
其实你别管具体是个什么变量,只要它能够正常发挥作用(保持焦点)就行

板凳

问题是书上的例题必须是在keepfocus为参数的情况下才能运行得出来,我困惑的是:难道这种事件的默认参数也可以随便改吗?
比如象keypress事件的默认参数keyascii应该是系统自动命名给出的,不能由我们随便改呀!

3 楼

形参名是可以随意更改的,只要它的类型对得上就可以了
这里,Cancel = True,你修改形参的值实际上修改的是VB内部调用你时传的实参,在VB内部也许是VBKeepFocus之类的什么其他名字.你修改Cancel的值实际上修改到的是VBKeepFocus的值, VBKeepFoucs = True.

说的有点乱,如果你接触过汇编和C就很容易理解,他们声明一个函数时制定类型就OK了,不用写名字.

4 楼

还是不懂。那我能把keypress事件的参数keyascii随便改成一个x或者是y吗?这应该和自定义的过程参数命名不同吧,自定义的子过程和函数的形式参数名字才能随便取吧?

5 楼

[quote]还是不懂。那我能把keypress事件的参数keyascii随便改成一个x或者是y吗?这应该和自定义的过程参数命名不同吧,自定义的子过程和函数的形式参数名字才能随便取吧?[/quote]
正确,你试一下,绝对OK,只要过程名以及参数类型一致,参数名可以任意修改.

6 楼

[quote]问题是书上的例题必须是在keepfocus为参数的情况下才能运行得出来,我困惑的是:难道这种事件的默认参数也可以随便改吗?
比如象keypress事件的默认参数keyascii应该是系统自动命名给出的,不能由我们随便改呀![/quote]

Private Sub Form_KeyPress(ka As Integer)
    Debug.Print ka
End Sub

WHY NOT?

我来回复

您尚未登录,请登录后再回复。点此登录或注册