禁用框架后更改所有标签的颜色

禁用后,我需要一些帮助将帧的标签颜色转换为灰色。 启用和禁用框架是很容易的,但我如何得到属于该框架的所有标签,并将颜色更改为灰色。 我试图标记所有的框架文本框与他们各自的标签,并在文本框级工作,但它只是不工作。 这是我的代码:

Private Sub cbxCSENetworkDeseign_Click() Dim Tbox As MSForms.TextBox If cbxCSENetworkDeseign.Value = True Then 'Check box that will disable / enable the frame frmCustomerDetails.Enabled = False For Each Tbox In frmCustomerDetails.Controls Controls(Tbox.Tag).ForeColor = vbGrayText Next Tbox Else frmCustomerDetails.Enabled = True For Each Tbox In frmCustomerDetails.Controls Controls(Tbox.Tag).ForeColor = vbBlack Next Tbox End If End Sub 

尝试这个:

 Private Sub cbxCSENetworkDeseign_Click() Dim Tbox As Object 'MSForms.TextBox If cbxCSENetworkDeseign.Value = True Then 'Check box that will disable / enable the frame frmCustomerDetails.Enabled = False For Each Tbox In frmCustomerDetails.Controls Tbox.ForeColor = vbGrayText Next Tbox Else frmCustomerDetails.Enabled = True For Each Tbox In frmCustomerDetails.Controls Tbox.ForeColor = vbBlack Next Tbox End If End Sub 

@Excel Hero Thankx芽。 但重新检查我的代码后,我发现缺less的是完成我的框架中的所有标签(其中一些是空的),所以当我运行它实际上是工作。 thx再次发芽;)