See the question and my original answer on StackOverflow

The System.Drawing.Image class has a custom Editor attribute setup which defines a class that derives from the base UITypeEditor class, if you look at it with a tool such as .NET Reflector, you will see this:

[... Editor("System.Drawing.Design.ImageEditor, System.Drawing.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))...]
public abstract class Image : ...
{
   ...
}

So you can do the same with your class, like this:

[Editor(typeof(MySomethingEditor), typeof(UITypeEditor))]
public class Something
{
   ...
}

public class MySomethingEditor: UITypeEditor
{
   ...
}

You can google on "UITypeEditor" to get some samples. Here is one official one: Walkthrough: Implementing a UI Type Editor