Hi,
If you are going to draw this yourself anyway, better derive from DiagramNode or ShapeNode and override the Draw method. Hosted controls cannot be integrated that well with the rest of the diagram, e.g. you cannot mix them with other items in the Z order, and the diagram cannot always detect mouse operations on the controls.
1) Set the ControlNode.ControlPadding property.
2) ShapeHandlesStyle is the default for ShapeNodes. For ControlNodes you will have to set HandlesStyle or EnabledHandles on individual objects.
3) The problem is you are not drawing on the Graphics supplied with the event. Replace this
DrawIN(this.CreateGraphics(), 0, 0, "IN");
with
DrawIN(e.Graphics, 0, 0, "IN");
You should also call Dispose on the pens and brushes used in DrawIN, or you'll start getting GDI+ exceptions after drawing the controls several thousand times.
4) Set host.HandlesStyle = HandlesStyle.MoveOnly;
5) Set smaller Diagram.Bounds or DiagramView.ShowScrollbars = false;
6) I'm not sure what you mean by that
I hope that helps,
Stoyan