*this shows a simulation of enabled/disabled controls if they are not grayed as well natively with vfp. *idea is to add another control (image) or here a particular shape with drawmode property making it transparent. *mouseEnter enables all container controls,mouseLeave covers the container by the grayed transparent shape. Public oform1 oform1=Newobject("form1") oform1.Show Return * Define Class form1 As Form Top = 84 Left = 316 Height = 138 Width = 349 Caption = "Enable/disable by masking a container" Name = "form1" Add Object container1 As Cnt With ; Top = 11, ; Left = 24, ; Width = 144, ; Height = 84, ; Name = "Container1" Procedure my1 Lparameters nButton, nShift, nXCoord, nYCoord This.shp.Visible=.F. Endproc Procedure container1.MouseLeave Lparameters nButton, nShift, nXCoord, nYCoord Try Thisform.shp.Visible=.T. Catch Endtry Endproc Procedure container1.MouseEnter Lparameters nButton, nShift, nXCoord, nYCoord Try Thisform.shp.Visible=.F. Catch Endtry Endproc Enddefine * *-- EndDefine: form1 *container class for simulate your class calendar container Define Class Cnt As Container Top = 11 Left = 24 Width = 144 Height = 84 Name = "CNT" Add Object text1 As TextBox With ; Height = 25, ; Left = 16, ; Top = 12, ; Width = 107, ; Name = "Text1" Add Object command1 As CommandButton With ; Top = 42, ; Left = 58, ; Height = 25, ; Width = 73, ; FontBold = .T., ; Caption = "Command1", ; Name = "Command1" Add Object text2 As TextBox With ; Height = 25, ; Left = 14, ; Top = 43, ; Width = 40, ; Name = "Text2" Procedure Init Local m.xleft,m.xtop,m.xwidth,m.xheight With This m.xleft=.Left m.xtop=.Top m.xwidth=.Width m.xheight=.Height Endwith With Thisform .AddObject("shp","shape") With .shp .Left=m.xleft .Top=m.xtop .Width=m.xwidth .Height=m.xheight .DrawMode=14 && important .BackColor=Rgb(128,128,128) .Curvature=0 &&can here set round rectangle... .ZOrder(0) .Visible=.T. Endwith Endwith Bindevent(Thisform.shp,"mouseEnter",Thisform,"my1") Endproc Procedure MouseEnter Lparameters nButton, nShift, nXCoord, nYCoord Try Thisform.shp.Visible=.F. Catch Endtry Endproc Procedure MouseLeave Lparameters nButton, nShift, nXCoord, nYCoord Try Thisform.shp.Visible=.T. Catch Endtry Endproc Enddefine * *-- EndDefine: Cnt