Ms access 如何从导航子窗体中删除文本框焦点

Ms access 如何从导航子窗体中删除文本框焦点,ms-access,vba,Ms Access,Vba,我花了几天时间寻找这个问题的答案。我有一个主窗体“frmadcontact”,其中有一个导航子窗体“NavigationSubform”。所有文本字段都通过在“OnGetFocus”和“OnLostFocus”事件下放置按钮并更改按钮的可见性而添加了发光效果。当我在主窗体上进进出出时,以及当我移动到子窗体时,所有的工作都非常好,但是当我从子窗体移动到主窗体时,问题就发生了-焦点仍然在子窗体上,所以在子窗体和主窗体上可以看到光晕 在主窗体中选择文本框时,如何删除焦点 每个文本框都有以下代码: Pr

我花了几天时间寻找这个问题的答案。我有一个主窗体“frmadcontact”,其中有一个导航子窗体“NavigationSubform”。所有文本字段都通过在“OnGetFocus”和“OnLostFocus”事件下放置按钮并更改按钮的可见性而添加了发光效果。当我在主窗体上进进出出时,以及当我移动到子窗体时,所有的工作都非常好,但是当我从子窗体移动到主窗体时,问题就发生了-焦点仍然在子窗体上,所以在子窗体和主窗体上可以看到光晕

在主窗体中选择文本框时,如何删除焦点

每个文本框都有以下代码:

Private Sub [TextBoxName]_GotFocus()
Glow Me.[TextBoxName], Me.[ButtonName], True
End Sub

Private Sub [TextBoxName]_LostFocus()
Glow Me.[TextBoxName], Me.[ButtonName], False
End Sub
发光方法代码位于模块中:

Sub Glow(ctlText As Control, ctlShadow As Control, TurnOn As Boolean)
If TurnOn = True Then
    ctlText.BorderColor = RGB(102, 175, 233)
    ctlShadow.Visible = True
Else
    ctlText.BorderColor = RGB(228, 228, 228)
    ctlShadow.Visible = False
End If
End Sub

两个带有辉光的文本框

我认为问题在于子表单本身并没有真正失去焦点。您应该能够通过从主窗体的文本框GotFocus事件运行辉光代码来强制删除辉光

这有点棘手,但请查看许多有关从表单引用子表单的在线资源。
首先

规则是您基本上必须首先引用主窗体,然后是子窗体,然后是控件

如果在文本框获得焦点时执行此操作,则应清除子窗体控件的光晕

Private Sub [TextBoxName]_GotFocus()
   Glow Forms![frmAddContact]![NavigationSubform].Form.[TextBoxName], _   
        Forms![frmAddContact]![NavigationSubform].Form.[ButtonName], False
   Glow Me.[TextBoxName], Me.[ButtonName], True
End Sub

我认为问题在于子表单本身并没有真正失去焦点。您应该能够通过从主窗体的文本框GotFocus事件运行辉光代码来强制删除辉光

这有点棘手,但请查看许多有关从表单引用子表单的在线资源。
首先

规则是您基本上必须首先引用主窗体,然后是子窗体,然后是控件

如果在文本框获得焦点时执行此操作,则应清除子窗体控件的光晕

Private Sub [TextBoxName]_GotFocus()
   Glow Forms![frmAddContact]![NavigationSubform].Form.[TextBoxName], _   
        Forms![frmAddContact]![NavigationSubform].Form.[ButtonName], False
   Glow Me.[TextBoxName], Me.[ButtonName], True
End Sub

谢谢你的回复。现在,我通过创建Sub-RemoveGlow建立了这个问题的解决方案:谢谢你的回复。现在,我通过创建Sub-RemoveGlow为这个问题建立了一种解决方案: