I can understand a private control on what's effectively a compound component. That's just you want to display something in label, but you don't want to provide the facility to mess with it, change the font, move it etc.
The public member, well that's just wrong. Someoojah.txtItemDollar.Dispose; or = null; If it didn't fall over in a big heap after that I'd be very surprised. It violates so many fundamental design principals, its not true.
Can't say I'm surprised though. Early .net suffered from a number of very poor implementations, probably had a sales deadline to meet.