| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2203 人关注过本帖
标题:关于SUB的处理先后顺序
只看楼主 加入收藏
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
结帖率:78.95%
收藏
已结贴  问题点数:20 回复次数:8 
关于SUB的处理先后顺序
如果有一些SUB的相关条件是相同或类似的,这些SUB是怎么样的处理顺序

比如说,FORM_CLICK,FORM_MOUSEDOWN
一旦鼠标按下时,是先执行哪个呢?

又比如说:FORM_CLICK,FORM_MOUSEDOWN,LISTVIEW1_CLICK,LISTVIEW1_MOUSEDOWN
FORM层级和控件层级的一起时,又是先执行哪个呢?
2016-05-25 17:38
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
你写个代码就可以得知了,这些可以自己学习的
举例:
程序代码:
Private Sub FORM_CLICK
Msgbox "Form_Click"
End Sub

Private Sub FORM_MOUSEDOWN
Msgbox "Form_MouseDown"
End Sub


这样,如果先出来的是Form_Click讯息,说明Click是第一优先级,反之亦然

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2016-05-25 18:22
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
先是:FORM_MOUSEDOWN
然后是 FORM_MOUSEUP
最后是:FORM_CLICK

FORM_CLICK这个事件需要完整的 MOUSEDOWN 和 MOUSEUP ,才能触发。

点啥控件,就啥控件的事件触发,点窗体时,就是窗体的事件触发。

键盘事件有点例外。

授人于鱼,不如授人于渔
早已停用QQ了
2016-05-25 18:50
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
回复 2楼 renxiaoyao36
我知道可以去试,终归规律或者规则还是要弄懂,谢谢
2016-05-26 10:20
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
回复 3楼 风吹过b
以下是引用风吹过b在2016-5-25 18:50:04的发言:
FORM_CLICK这个事件需要完整的 MOUSEDOWN 和 MOUSEUP ,才能触发。


这个是我想要了解的东西,谢谢
2016-05-26 10:21
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
回复 3楼 风吹过b
我刚又试了下,貌似又不是那么回事

DOWN与UP是冲突的

CLICK似乎只认UP,而DOWN是优先级最高的,但是处理完DOWN之后就完全跳过了UP跟CLICK

Private Sub Form_Click()
MsgBox "click"
End Sub

Private Sub Form_DblClick()
MsgBox "doubleclick"
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox "down"
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox "up"
End Sub
2016-05-26 11:31
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:10 
回复 6楼 linandceline
不能使用msgbox,它会拦截鼠标消息,用下述代码可以看到
Private Sub Form_Click()
  Print "click"
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Print "down"
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Print "up"
End Sub
结果是:
down
up
click

能编个毛线衣吗?
2016-05-26 11:43
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
回复 6楼 linandceline
7楼说的对,不要用msgbox。用一个Textbox替代可以实现
2016-05-26 12:38
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
收藏
得分:0 
回复 7楼 wmf2014
明白了,多谢
2016-05-26 13:47
快速回复:关于SUB的处理先后顺序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028192 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved