隐藏/取消隐藏基于控件标签的主窗体上的控件,在连续子窗体中使用当前事件

Posted

技术标签:

【中文标题】隐藏/取消隐藏基于控件标签的主窗体上的控件,在连续子窗体中使用当前事件【英文标题】:Hide/Unhide controls on main form based on control's tag using on current event in continuous sub form 【发布时间】:2021-04-27 02:54:21 【问题描述】:

第一次发帖。您能否建议如何在我的代码中修复此错误。我希望我能正确地提出这个问题。我有一个带有连续子表单的主表单。在名为 lngIteTypFK 的项目类型的子表单中有一个控件。我正在尝试使用当前事件的子表单来根据主表单控件标签使主表单上的未绑定控件隐藏或可见。如果标签的值等于项目类型的值,则可见。当我尝试运行以下代码时,出现错误“您输入的表达式对属性 Visible 的引用无效”:

Private Sub Form_Current()
On Error GoTo ErrorHandler

Dim frm As Form
Dim ctl As Control
Dim varlngIteTypFK As Long

Set frm = Forms!frmQot

varlngIteTypFK = Me.lngIteTypFK

For Each ctl In frm

    Select Case ctl.Tag
        Case Is = 0
            ctl.Visible = True 'error happens here
        Case Is = 1
            ctl.Visible = False
        Case Is = varlngIteTypFK
            ctl.Visible = True
        Case Else
            ctl.Visible = False
    End Select

Next ctl

ExitError:
     Exit Sub
ErrorHandler:
     MsgBox Err.Description
     Resume ExitError
End Sub

【问题讨论】:

试过这个结构。我没有收到错误。 感谢您的尝试。这真的让我很难过。 我刚刚在一个新的数据库中尝试了这段代码,只有表单和代码,它运行良好。这里还有其他事情发生。如果我找到答案,我会报告。 【参考方案1】:

我已经解决了这个问题。父窗体上有空单元格。由于某种原因,错误是由循环通过控件时这些空单元格引起的。我添加了一行来测试控件是标签、文本框还是组合框。这解决了如下问题:

Option Compare Database
Option Explicit

Private Sub Form_Current()
'On Error GoTo ErrorHandler

Dim frm As Form
Dim ctl As Control
Dim varlngIteTypFK As Long

Set frm = Forms!frmQot

varlngIteTypFK = Me.lngIteTypFK

For Each ctl In frm
    If ctl.ControlType = acComboBox Or ctl.ControlType = acTextBox Or ctl.ControlType = acLabel Then 'added this line
        Select Case ctl.Tag
            Case Is = 0
                ctl.Visible = True
            Case Is = 1
                ctl.Visible = False
            Case Is = varlngIteTypFK
                ctl.Visible = True
            Case Else
                ctl.Visible = False
        End Select
    End If
Next ctl

ExitError:
    Exit Sub
ErrorHandler:
    MsgBox Err.Description
    Resume ExitError
End Sub

【讨论】:

以上是关于隐藏/取消隐藏基于控件标签的主窗体上的控件,在连续子窗体中使用当前事件的主要内容,如果未能解决你的问题,请参考以下文章

关于HTML的<video>标签控件

video视频标签自定义显示隐藏播放控件&Shadow DOM

VC6.0中基于对话框的MFC EXE中的Tab Control控件如何使用???

窗体中添加控件与窗体显示和隐藏

WPF 窗体在Alt+Tab中隐藏

viewstate