首页 > 解决方案 > 在其边界之外单击时隐藏表单控件,VBA Access

问题描述

我有一个带有以下控件的表单:

  1. 三个文本框(text_box_a、text_box_b、text_box_c)
  2. 列表框 (list_ctrl)
  3. 相框 (pic_frame)

我希望列表框在用户在其边界之外单击时消失,而不是在单击一个特定文本框(text_box_a)时消失。当它在所述文本框内单击时,它也会重新出现。

我试过的:

Private Sub text_box_a_GotFocus()
    Me.list_ctrl.Visible = True
End Sub

Private Sub list_ctrl_LostFocus()
    If Not (Me.text_box_a Is Me.ActiveControl) Then
        Me.list_ctrl.Visible = False
    End If
End Sub

我在 Microsoft Access 2013 中工作

标签: vbams-access

解决方案


每当用户在其边界之外单击时,我希望列表框消失...

如果您的意思是单击表单详细信息部分,并说“超出其边界”,那么您可以使用Detail_Click()表单的事件。

使用Enter文本框的事件还可以“捕获”相应标签上的点击,并且在您使用键盘移动焦点时也可以使用。

Private Sub Detail_Click()
    If Not (Me.list_ctrl Is Me.ActiveControl) Then
        Me.list_ctrl.Visible = False
    End If
End Sub

Private Sub text_box_a_Enter()
    Me.list_ctrl.Visible = True
End Sub

Private Sub text_box_b_Enter()
    Me.list_ctrl.Visible = True
End Sub

Private Sub text_box_c_Click()
    Me.list_ctrl.Visible = True
End Sub

但是list_ctrl当它有焦点时隐藏它是一个问题。


推荐阅读