VB事件的执行顺序

[复制链接]
查看11 | 回复1 | 2006-9-17 12:54:26 | 显示全部楼层 |阅读模式
可用一个控件的 Value 属性从代码中测试该控件的状态。单击一个控件除了产生 Click 事件以外还可产生 MouseDown 和 MouseUp 事件。这三种事件发生的顺序根据控件的不同而不同。例如,对 ListBox 和 CommandButton 控件来说,这些事件按下列顺序发生:MouseDown、Click、MouseUp。但对 FileListBox,Label 或 PictureBox 控件来说,这些事件按下列顺序发生:MouseDown、MouseUp 和 Click。当给这些相关的事件附加事件过程时,要确保它们的操作不互相冲突。如果在应用程序中事件发生的顺序是重要的,则应对控件进行测试以确定事件的顺序。补充:Option ExplicitDim SW As BooleanDim Y As VariantFunction func(X As Integer) As IntegerIf X < 20 ThenY = XElseY = 20 + XEnd Iffunc = YEnd FunctionPrivate Sub Command1_Click()Dim intNum As IntegerintNum = InputBox("")If SW ThenPrint func(intNum)End IfSW = Not SWEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)SW = FalseEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)SW = TrueEnd Sub
回复

使用道具 举报

千问 | 2006-9-17 12:54:26 | 显示全部楼层
用下面类似的代码可以看到先后顺序Private Sub Command1_Click()Debug.Print "Command1_Click"End SubPrivate Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Debug.Print "Command1_MouseDown"End SubPrivate Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)Debug.Print "Command1_MouseUp"End Sub-------------------------下面的程序运行时SW的值初始是False,所以不会print。你先点击一下窗体,再点command1就会输出了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行