2016-09-12 63 views
1

我正在寻找几天这个问题的答案。我有我的主要形式“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 

夜光方法代码坐在模块:

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

我认为这个问题是子窗体本身并没有真正失去焦点。您应该能够通过从主窗体的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 
+0

谢谢dbmitch您的回应。现在,我通过创建Sub RemoveGlow建立对此问题的解决方案: –