启用控件 - 颜色剥离问题
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
我目前有几个复选框执行以下代码。
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