Richard, a colleague of mine should take the credit for this as he originally found it but since he doesn't have a blog I thought I'd blog it here so I don't forget, and perhaps help someone else at the same time.
Have you ever noticed how the text property on a lot of controls have an ellipses button and allow you to bring up a big edit box.. well we wanted to do the same with our own control. I thought it was probably an attribute and I was right, just add the following to your text property;
<System.ComponentModel.Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", GetType(System.Drawing.Design.UITypeEditor)), System.ComponentModel.Localizable(True)> _
Now the credit to Richard who put me onto a great tool for finding this out, Lutz Roeder's excellent Reflector which allows you to drill down into just about any .net component and disassemble it getting useful bits like this. Given the .net object model it looks a little daunting but once you've done it once it's pretty easy. To illustrate I'll show you the navigation used to get to the text property.
Reflector by default will show you the base .net object model, you know it's a form control so drill into the system.windows.forms assembly , then the DLL (there can be more than one), then system.windows.forms namespace. Now choose the Textbox property and disassemble it (right click menu). Unfortunately nothing tells you here about the magic attribute but you can see that it overrides something. Looking back at the TextBox itself you can see that it inherits TextBoxBase, navigating to this via the hyperlink in the info pane at the bottom left and scrolling down to the Text property and there you go, that mysterious attribute revealed!
A handy technique once you know what information Reflector is giving you and where to look for more.