private void ShowActiveFamily()
        {
            trace.TraceInformation("TreeViewPanel5::ShowActiveFamily (start) " + this.CanFocus);

            while (this.controlList.Count > 0)
            {
                IndividualButton button = controlList[0];
                this.Controls.Remove(button);
                this.controlList.RemoveAt(0);
            }

            //SetBounds(0, 0, maxGenerations * controlWidth, (int)Math.Pow((double)2, (double)(maxGenerations)), BoundsSpecified.All);
            maxGenerations = Convert.ToInt32(generationNoCtrl.SelectedItem);

            //SetScrollState();

            if ((familyTree == null) || !this.Visible)
            {
                return;
            }


            UpdateControlSizes();

            if (selectedIndividual != null)
            {
                Point pos = new Point(0, (controlHeight + controlMargin) * (int)Math.Pow((double)2, (double)(maxGenerations)) / 2);
                AddPerson(selectedIndividual, pos, 0);
                //IndividualButton individual = new IndividualButton(selectedIndividual);

                //this.controlList.Add(individual);
                //this.Controls.Add(individual);
            }


            trace.TraceInformation("TreeViewPanel5::ShowActiveFamily (end) ");
        }
        private void AddPerson(IndividualClass person, Point position, int generation)
        {
            Point            size       = new Point(controlWidth, controlHeight);
            IndividualButton individual = new IndividualButton(this, person, size, boxFont);

            individual.Top  = position.Y;
            individual.Left = position.X;


            this.controlList.Add(individual);
            this.Controls.Add(individual);

            /*if (individual.Width > controlWidth)
             * {
             * individual.Width = controlWidth;
             * }*/

            if (generation < maxGenerations)
            {
                IList <FamilyXrefClass> parentFamilies = individual.individual.GetFamilyChildList();

                if (parentFamilies != null)
                {
                    foreach (FamilyXrefClass familyXref in parentFamilies)
                    {
                        FamilyClass family = familyTree.GetFamily(familyXref.GetXrefName());

                        if (family != null)
                        {
                            IList <IndividualXrefClass> parentXrefList = family.GetParentList();

                            if (parentXrefList != null)
                            {
                                Point nextPosition  = position;
                                int   margin        = controlMargin;
                                int   controlOffset = (controlHeight + margin) * (int)Math.Pow((double)2, (double)(maxGenerations - generation - 1));

                                //if(generation == 0)
                                {
                                    //margin += controlHeight / 2;
                                }

                                if (controlOffset > controlHeight)
                                {
                                    nextPosition.X += controlWidth + margin;
                                }

                                /*else
                                 * {
                                 * nextPosition.X += controlWidthSmall + margin;
                                 * }*/
                                nextPosition.Y -= controlOffset / 2;

                                foreach (IndividualXrefClass parentXref in parentXrefList)
                                {
                                    IndividualClass parent = familyTree.GetIndividual(parentXref.GetXrefName());

                                    if (parent != null)
                                    {
                                        AddPerson(parent, nextPosition, generation + 1);
                                    }
                                    nextPosition.Y += controlOffset;
                                }
                            }
                        }
                    }
                }
            }
        }