如何在MS Access中隐藏可见控件?点击btnSave遇2165错误求助
解决Access运行时错误2165:无法隐藏拥有焦点的控件
错误原因
点击btnSave按钮时,该控件正处于获得焦点的状态,而Access不允许隐藏当前持有焦点的控件,因此触发Run-time error '2165'。
解决方案
核心思路是在隐藏btnSave之前,把焦点转移到其他可获得焦点的控件上,以下是几种可行实现方式:
方式1:转移焦点到现有控件
如果窗体上有其他可获得焦点的控件(比如文本框、组合框),直接将焦点移过去再隐藏按钮:
Private Sub btnSave_Click() ' 将焦点转移到窗体上的某个文本框(示例:txtName) Me.txtName.SetFocus ' 执行你的保存逻辑 .... Me.Refresh Me.Repaint Me.btnSave.Visible = False Me.btnCancelSave.Visible = False End Sub
方式2:转移焦点到窗体本身
如果没有合适的现有控件,可以直接将焦点移到窗体:
Private Sub btnSave_Click() ' 将焦点转移到窗体 Me.SetFocus ' 执行你的保存逻辑 .... Me.Refresh Me.Repaint Me.btnSave.Visible = False Me.btnCancelSave.Visible = False End Sub
方式3:添加专用焦点转移控件
如果上述两种方式都不适用,可在窗体上添加一个极小尺寸的文本框(设置Width=0、Height=0,TabStop=True),专门用来转移焦点:
Private Sub btnSave_Click() ' 转移焦点到专用文本框(示例:txtFocusHolder) Me.txtFocusHolder.SetFocus ' 执行你的保存逻辑 .... Me.Refresh Me.Repaint Me.btnSave.Visible = False Me.btnCancelSave.Visible = False End Sub
内容的提问来源于stack exchange,提问作者Anirudh Lou
相关产品推荐
相关产品推荐

