我有一个包含以下控件的表单:
我希望列表框在用户单击其边界之外时消失,但在单击一个特定的文本框( text_box_a )时不消失。当它在上述文本框中单击时,也会重新出现。
我尝试过的事情:
if(bereq.http.host == "magento-host.com") {
// specific config for magento
}
if(bereq.http.host == "prestashop-host.com") {
// specific config for prestashop
}
我正在使用Microsoft Access 2013
答案 0 :(得分:1)
只要用户在其边界之外单击,我希望列表框消失...
如果您要单击“表单详细信息”部分(说出“超出其边界”),则可以使用表单的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
处于焦点时隐藏它是一个问题。
答案 1 :(得分:0)
一个选择是在代码中使用2个标准函数(一个隐藏控件,另一个显示该控件),然后根据是否为{{1 }}或其他控件之一:
首先,您设置2个不同的功能:
OnGotFocus
然后,您可以在text_box_a
事件中循环将不同的控制事件分配给其中一个。像这样:
Public Function ShowListBox()
Me.list_ctrl.Visible = True
End Function
Public Function HideListBox()
' if active control is list box, change active control
' before hiding list box
If Me.ActiveControl.Name = Me.list_ctrl.Name Then
Me.text_box_b.SetFocus
End If
Me.list_ctrl.Visible = False
End Function