public void SelectTabButton(string functionName)
 {
     if ((this.tabButtonSelected != null) && (this.tabButtonSelected.InvokeRequired))
     {
         this.Invoke(new SelectTabButtonCallback(this.SelectTabButton), new object[] { functionName });
     }
     else
     {
         GraphTabButton tempTabButton = null;
         foreach (GraphTabButton tabButton in this.tabButtons)
         {
             if (tabButton.Text == functionName)
             {
                 tempTabButton = tabButton;
                 break;
             }
         }
         if (this.tabButtonSelected != tempTabButton)
         {
             if (tempTabButton == null)
             {
                 throw new ProjectException("This function don't exists");
             }
             tempTabButton.Selected = true;
         }
     }
 }
        public void AddTabButton(string name, bool removeEnabled, bool selected)
        {
            GraphTabButton button = new GraphTabButton(name, removeEnabled);

            button.Index                = this.tabButtons.Count;
            button.TabSelected         += new EventHandler(Button_TabSelected);
            button.RemoveTab           += new EventHandler(Button_RemoveTab);
            button.ChangeTabName       += new EventHandler(Button_ChangeTabName);
            button.Location             = this.tabButtonPlus.Location;
            this.tabButtonPlus.Location = new Point(this.tabButtonPlus.Location.X + 128, 35);
            this.Controls.Add(button);
            this.tabButtons.Add(button);
            button.Selected = selected;
            if (selected)
            {
                this.tabButtonSelected = button;
                this.tabButtonSelected.BringToFront();
            }
            else
            {
                for (int i = this.tabButtons.Count - 1; i >= 0; i--)
                {
                    this.tabButtons[i].BringToFront();
                }
            }
            if (this.tabButtons.Count >= MAX_TAB_PAGES)
            {
                this.tabButtonPlus.Enabled = false;
            }
            this.verticalScroll.Value   = 0;
            this.horizontalScroll.Value = 0;
        }
 public void RemoveAllTabButtons()
 {
     this.tabButtonSelected = null;
     foreach (GraphTabButton button in this.tabButtons)
     {
         this.Controls.Remove(button);
         button.TabSelected   -= this.Button_TabSelected;
         button.RemoveTab     -= this.Button_RemoveTab;
         button.ChangeTabName -= this.Button_ChangeTabName;
     }
     this.tabButtons.Clear();
     this.tabButtonPlus.Location = new Point(14, 35);
     this.tabButtonPlus.Enabled  = true;
 }
 void Button_TabSelected(object sender, EventArgs e)
 {
     if (this.tabButtonSelected != null)
     {
         this.tabButtonSelected.Selected = false;
     }
     for (int i = this.tabButtons.IndexOf(this.tabButtonSelected) - 1; i >= 0; i--)
     {
         if (this.tabButtons[i] != sender)
         {
             this.tabButtons[i].BringToFront();
         }
     }
     this.tabButtonSelected = (GraphTabButton)sender;
     if (this.TabPageSelected != null)
     {
         this.TabPageSelected(this, new GraphTabButtonEventArgs(this.tabButtonSelected));
     }
 }