Thanks Brenden
I tried that but couldn't work out how to then add the zone to the layout web part (AddZone() takes id and title strings and not a control).
I tried
CMSWebPartZone zone = new CMSWebPartZone();
zone.ID = this.ID + "_contentZone";
if (zone.WebParts.Count > 0)
{
zone.ContentBefore = "<div class=\"widget-wrapper\">";
zone.ContentAfter = "</div>";
}
AddZone(this.ID + "_contentZone", "Content Zone");
but the content before and after were not getting added and I suspect the ID reference did not marry the control with the new zone being created
I can set ContentBefore and ContentAfter like so but it adds the div even when there is no content in the web part zone
CMSWebPartZone contentZone = AddZone(this.ID + "jumpToContentZone", "Jump To Content Zone");
contentZone.SetValue("ContentBefore", "<div class='widget-wrapper'>");
contentZone.SetValue("ContentAfter", "</div>");