public DockWindowTabCollection(Form1 parent)
        {
            TabPages = new List<DockWindowTabPage>();
            TabPageType[] types = (TabPageType[])Enum.GetValues(typeof(TabPageType));
            foreach (var x in types)
            {
                DockWindowTabPage form = new DockWindowTabPage(x, parent, this);
                TabPages.Add(form);
            }
            //PageのUnitの部分をコピー
            UnitPageFactory = new TabUnitPageFactory(parent, this);
            UnitPageFactory.UnitPages.Add(TabPages[(int)TabPageType.Unit]);
            //親スクリーンの設定
            this.MainScreen = parent;

            //非タブページ
            Pages = new List<IMyDockingWindow>();
            NonTabPageType[] ntype = (NonTabPageType[])Enum.GetValues(typeof(NonTabPageType));
            foreach(var x in ntype)
            {
                IMyDockingWindow dw = x.CreateWindowInstance(parent, this);
                Pages.Add(dw);
            }
        }
 //再利用なしでページを作る
 public DockWindowTabPage CreateNew(EventHandler dockStateChangedEventHandler)
 {
     DockWindowTabPage page = new DockWindowTabPage(TabPageType.Unit, _parent, _collection);
     page.DockStateChanged += new EventHandler(dockStateChangedEventHandler);
     this.UnitPages.Add(page);
     return page;
 }
 //再利用ありでページを作る
 public DockWindowTabPage Create()
 {
     //再利用できるウィンドウがある場合
     foreach(var x in UnitPages)
     {
         if(x.DockState == DockState.Hidden)
         {
             return x;
         }
     }
     //新規に作る場合
     DockWindowTabPage page = new DockWindowTabPage(TabPageType.Unit, _parent, _collection);
     this.UnitPages.Add(page);
     return page;
 }