This is actually a fairly complicated thing to do. You are going to need to use the System.ComponentModel.Design library, and custom Attributes. You are going to have to implement classes that inherit from System.Windows.Forms.Design.ControlDesigner, and from DesignerActionList.
There are several articles on CodeProject that can help you[
^]
You might start here at the Microsoft walk-through:[
^]. And also see the example here on StackOverFlow:[
^].
And, finally, Matthew MacDonald's excellent book on WinForms has chapters on building complex controls with smart-tags.
I looked into this, and decided it was too much effort for me, but don't let that stop you :)