public void OnRender(IControlList controls, int currentTabLen, int intend)
            {
                int curPosition = 0;

                switch (Orientation)
                {
                case Orientation.Horizontal:
                    foreach (ITabPanel panel in controls.Cast <ITabPanel>())
                    {
                        Point point = new Point(curPosition, FixedPoint);
                        panel.ChangeLocation(point);
                        curPosition += (panel.Width = currentTabLen) + intend;
                    }

                    break;

                case Orientation.Vertical:
                    foreach (ITabPanel panel in controls.Cast <ITabPanel>())
                    {
                        Point point = new Point(FixedPoint, curPosition);
                        panel.ChangeLocation(point);
                        curPosition += (panel.Height = currentTabLen) + intend;
                    }
                    break;
                }
            }
            public void OnSurfacing(IControlList controls, int from, int to, int currentTabLent, int indent)
            {
                int distention = (currentTabLent + indent) * from;

                switch (Orientation)
                {
                case Orientation.Horizontal:
                    for (int i = from; i <= to; i++, distention += currentTabLent + indent)
                    {
                        ChangeLocationWidth((ITabPanel)controls[i], distention);
                    }
                    break;

                case Orientation.Vertical:
                    for (int i = from; i <= to; i++, distention += currentTabLent + indent)
                    {
                        ChangeLocationHeight((ITabPanel)controls[i], distention);
                    }
                    break;
                }
            }