I tried this and got the same result, even with the debugger turned on. Maybe my basic understanding is flawed.
My assumption was that if the textbox AutoSize is set to .T. then the textbox will resize whenever the caption changes. If this is not correct, then is there something else I must do (beside try to calculate the width of the control manually) to reset the width? Right now, when I run through the debugger I see
LPARAMETERS tcCaption
lcOldCaption = This.label1.caption ---> "Action Text"
lnOldWidth = This.label1.Width -------> 57
This.label1.Caption = tcCaption ------> "Update Chassis Information"
lnNewWidth = This.label1.Width -------> 57 ??????????
This.Width = This.Width + (lnNewWidth - lnOldWidth)
Once again, all help greatly appreciated
>Rich,
>
>Create method SetCaption for container class and use it instead of settting label caption directly
>
>* Method SetCaption
>LPARAMETERS tcCaption
>lnOldWidth = This.label1.Width
>This.label1.Caption = tcCaption
>lnNewWidth = This.label1.Width
>This.Width = This.Width + (lnNewWidth - lnOldWidth)
>
>
>>I've created a container class. It has a label class inside it. The label class has AutoSize set to TRUE. It also has an Assign method
>>LPARAMETERS vNewVal
>>
>>THIS.CAPTION = m.vNewVal
>>This.Parent.Width = this.Width + this.Parent.image1.Width + 2
>>
>>If I step through this code, the container resizes properly.
>>
>>However, without stepping through the code, the Width of the label does not reset when it is given a new value. It retains the width of the label in the class definition.
>>
>>I've tried putting This.Refresh and This.Parent.Refresh at various points in the method, but to no avail.
>>