* NOTE: any setting of the control source needs to occur BEFORE this method. * eg. THIS.controlsource= xyz * VSTextBox::Init #DEFINE k_B 15 && border allowance in pixels (fudge factor) LOCAL nChr, cType, vData nChr= 0 WITH THIS DO CASE CASE .chrWidth # 0 nChr= .chrWidth CASE ! EMPTY(.Inputmask) nChr= LEN(.Inputmask) CASE ! EMPTY(.ControlSource) vData= EVAL(.Controlsource) cType= TYPE('m.vData') DO CASE CASE m.cType = 'C' nChr= LEN(m.vData) CASE m.cType = 'D' IF SET("CENTURY") = "ON" nChr= 10 ELSE nChr= 8 ENDIF ENDCASE ENDCASE IF m.nChr > 0 .width= m.nChr * FONTMETRIC(6, .FontName, .FontSize) + k_B ENDIF .disabledForeColor= app.colorDisabledText .disabledBackColor= app.colorWindow ENDWITHYour welcome to use some or all of it