When adding/removing ports to a GoGeneralNode, the node center stays in the same location, causing the node to grow 'outwards' from (or shrink 'inwards' to) the center.
I my case, I would like the node to grow at the bottom, retaining the top left position when adding/removing ports.
OK, without overriding GoGeneralNode, you could just save the topleft, and then reset it after adding the port.
PointF tl = ng.Icon.GetSpotLocation(GoObject.TopLeft); GoGeneralNodePort p = new GoGeneralNodePort(); ng.AddLeftPort(p); ng.Icon.SetSpotLocation(GoObject.TopLeft, tl);
A cleaner solution would be to override LayoutChildren, and essentially do the same thing. (remember the topleft, call the base method, then move the node to location.)