如何判断VB控件数组同时失去焦点

我在设计时遇到一问题,请高手解答,谢谢!意图:一控件数组Check1(有4个CheckBox控件),当数控件数组失去焦点后,即移动隐藏控件数组。所遇困难:控件数组的Los... 我在设计时遇到一问题,请高手解答,谢谢!
意图:一控件数组Check1( 有4个CheckBox控件),当数控件数组失去焦点后,即移动隐藏控件数组。
所遇困难:控件数组的LostFocus事件只能判断其中的一个CheckBox控件是否失去焦点,如用以下代码会导致在控件数组中内部选择CheckBox控件时,都会触发LostFocus事件(一个控件得到了焦点,另一个必然推动焦点),使整个控件数组移动隐藏,不能实现意图。
Private Sub Check1_LostFocus(Index As Integer)
Check1.move -300,-300
End Sub

如果能判断VB控件数组同时失去焦点的话,问题就能解决,请高手指点。
展开
 我来答
intehel
2014-09-03 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1768万
展开全部
Option Explicit
Private Declare Function GetFocus Lib "user32" () As Long

Private Sub Check1_LostFocus(Index As Integer)
    Dim i As Long, hWndFocus As Long
    hWndFocus = GetFocus()
    For i = 0 To 5
        If hWndFocus = Check1(i).hwnd Then Exit For
    Next
    
    If i > 5 Then
        For i = 0 To 5
            Check1(i).Visible = False
        Next
    End If
End Sub

如是即可

追问
按照方法解决了我的问题,谢谢。
百度网友e37b75e
2014-09-03 · 超过16用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:23.2万
展开全部
增加一个数值变量辅助判断,当lostfocus且数值为0则隐藏。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式