启用控件 - 颜色剥离问题

Enable Controls - Colour stripping issue

我目前有几个复选框执行以下代码。

Private Sub CheckBox2_Click()
    Dim en As Boolean
    en = CheckBox2.Value
    EnableControls Array(CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox9, CheckBox10, CheckBox11, TextBox1), en

End Sub

Private Sub EnableControls(cons, bEnable As Boolean)
    Dim con
    For Each con In cons
        With con
            .Enabled = bEnable
            .BackColor = IIf(bEnable, vbWhite, RGB(240, 240, 240))
        End With
    Next con
End Sub

因此,当 Checkbox=False 时,其他复选框字段显示为灰色,您无法选中它们。然而,一旦它们未变灰,它们的整个背景颜色就会从默认的 "form background grey" 变为粗体白色 - 关于如何将框变灰的任何想法以及当它们是 'un-greyed' 时,它们就会回到它们的状态默认颜色????

一点测试表明您可以保持代码不变,并在表单设计器

中将复选框的 BackStyle 设置为 fmBackStyleTransparent