| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 604 人关注过本帖
标题:MouseMove和GotFocus事件发生冲突,如何调和
只看楼主 加入收藏
sqiu_11
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-10-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
MouseMove和GotFocus事件发生冲突,如何调和
简单叙述:
       鼠标放在某Object1上,显示该Object1对应的数据库的值。按table键,光标转到下一个Object处,此时显示该光标Object处对应的数据库的值。
    如果鼠标放在Object1上,按table键,则始终显示鼠标处Object1对应的数据库的值。而不再随着光标变动。怎么办???
    问题大概出在, 鼠标放在某Object1上可以看做循环事件,如何通过程序按table键时跳出?如果给事件发生设个限制,那么一开始就无法触发此事件。。。很头疼
代码如下:
    Private Sub txtValue_MouseMove
            MouseOver = (0 <= X) And (X <= txtValue(Index).Width) And (0 <= Y) And (Y <= txtValue(Index).Height)
    '判断当前鼠标位置是否在Object1上
        If MouseOver Then
        '假如鼠标在Object1上, 则利用SetCapture将每一个鼠标事件都传递给Object1
        For i = 1 To 6
            If adoMillingSel.Recordset.RecordCount > 0 Then
                If adoMillingSel.Recordset.Fields(i) <> "" Then
                    StatusBar1.Panels(2 * i) = Format(adoMillingSel.Recordset.Fields(i).Value, "0.0")
                    SetCapture txtValue(Index).hwnd
                Else
                    StatusBar1.Panels(10) = ""
                    SetCapture txtValue(Index).hwnd
                End If
            End If
        Next i
    Else
        ' 假如鼠标不在Object1上, 则利用ReleaseCapture释放鼠标捕捉
        For i = 1 To 6
            StatusBar1.Panels(2 * i) = ""
            ReleaseCapture
        Next i
        End If
End Sub

Private Sub txtValue_GotFocus
   For i = 1 To 6
            If adoMillingSel.Recordset.RecordCount > 0 Then
                If adoMillingSel.Recordset.Fields(i) <> "" Then
                    StatusBar1.Panels(2 * i) = Format(adoMillingSel.Recordset.Fields(i).Value, "0.0")
                    SetCapture txtValue(Index).hwnd
                Else
                    StatusBar1.Panels(10) = ""
                    SetCapture txtValue(Index).hwnd
                End If
            End If
        Next i
End Sub
搜索更多相关主题的帖子: Object 数据库 如何 
2015-10-17 22:22
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
我想到的是,
三个变量
1 鼠标最后放在的位置
2 TAB 放在的位置
3 当前显示位置

如果是鼠标移动,如果计算出来的不是 1 的位置,那第设置1 和 3
否则,检测TAB ,检测 是否为2,如果不是,设置 2 和 3。
显示,按3去显
-----
逻辑:
鼠标优先,但鼠标不动时,TAB 动了,这时就使用TAB 的去显示。

授人于鱼,不如授人于渔
早已停用QQ了
2015-10-18 17:02
快速回复:MouseMove和GotFocus事件发生冲突,如何调和
数据加载中...
 
   



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

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