我几天都在寻找这个问题的答案。我的主窗体“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方法代码位于Module:
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
的文本框答案 0 :(得分:0)
我认为问题在于子窗体本身并没有真正失去焦点。您应该可以通过从主窗体的Textbox GotFocus事件中运行发光代码来强制移除光晕。
这有点棘手,但请查看许多有关从表单引用子表单的在线资源 <{3}}以
开头规则是你基本上必须首先引用主窗体,然后是子窗体,然后是控件
如果在文本框获得焦点时执行此操作,则应清除子窗体控件的光晕
Private Sub [TextBoxName]_GotFocus()
Glow Forms![frmAddContact]![NavigationSubform].Form.[TextBoxName], _
Forms![frmAddContact]![NavigationSubform].Form.[ButtonName], False
Glow Me.[TextBoxName], Me.[ButtonName], True
End Sub