【问题标题】:How to remove text box focus from navigation subform如何从导航子窗体中删除文本框焦点
【发布时间】:2016-09-12 15:17:46
【问题描述】:

我这几天一直在寻找这个问题的答案。我的主表单“frmAddContact”和导航子表单称为“NavigationSubform”。通过在按钮下方放置一个按钮并更改按钮 OnGotFocus 和 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

Glow 方法代码位于模块中:

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

两个发光的文本框Here

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

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

    这有点棘手,但请查看许多有关从表单引用子表单的在线资源。
    This is a good one 开始

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

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

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

    【讨论】:

    • 感谢 dbmitch 的回复。现在我通过创建 Sub RemoveGlow 来构建解决这个问题的方法:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多