loForm = Createobject('myForm') loForm.Show(1) define class myForm as Form add object myCheckBox as CheckBox with Caption = 'Some caption, very long caption, that stretches more than one line', ; Enabled = .f., ; DisabledForeColor = 255, ; Value = .f., ; height = 200, ; width = 100, ; autosize = .f., ; wordwrap = .t. add object myCommand as CommandButton with Caption = 'Change color', Top = 210 procedure myCommand.Click() thisform.myCheckBox.Value = not thisform.myCheckBox.Value thisform.myCheckBox.Refresh() endproc procedure myCheckBox.Refresh() this.DisabledForeColor = Iif(this.Value, 0, 255) && Use this for the first run, it will not work * this.DisabledForeColor = Iif(this.Value, 1, 255) && Use this for the second run, it works endproc enddefineI am sure is something old, but I just found it and thought about sharing it