Hi Mik,
Why not just use conditional formatting. Create section and put the control in that and then double click on the section, go to display, and add conditional formatting to make it visible or not. You'll need two sections - one with a list box and one with a textbox. For read-only, you can do the same thing. Should be trivial. Good luck!
Patrick Halstead [InfoPath MVP]
InfoPathDev
Patrick Halstead
Project Manager at Qdabra