public void Button_Click(object sender, EventArgs e)
        {
            bool           makeNewSideBar = ListButtons.Exists(x => x.PARENT_BUTTON == (int)(sender as Button).Tag);
            SIDEBAR_BUTTON button         = ListButtons.Find(x => x.SIDEBAR_BUTTON_ID == (int)(sender as Button).Tag);

            if (makeNewSideBar)
            {
                if (!button.displayed)
                {
                    List <SIDEBAR_BUTTON> list = ListButtons.FindAll(x => x.PARENT_BUTTON == button.SIDEBAR_BUTTON_ID);
                    SideBar sideBar            = new SideBar(list, ListButtons);
                    sideBar.Tag      = "CHILD_SIDEBAR_BUTTON_" + button.SIDEBAR_BUTTON_ID.ToString();
                    sideBar.Parent   = this.Parent;
                    sideBar.Location = (sender as Button).FindForm().PointToClient((sender as Button).Parent.PointToScreen(new Point((sender as Button).Bounds.Right, (sender as Button).Bounds.Top)));
                    ListButtons.Find(x => x.SIDEBAR_BUTTON_ID == (int)(sender as Button).Tag).displayed = true;
                    if (currentSideBarId != 0)
                    {
                        closeCurrentSideBar(currentSideBarId);
                    }
                    currentSideBarId = button.SIDEBAR_BUTTON_ID;
                }
                else
                {
                    closeCurrentSideBar(button.SIDEBAR_BUTTON_ID);
                }
            }
            else
            {
                switch ((sender as Button).Text)
                {
                default:
                    break;
                }
            }
        }
        public SideBar()
        {
            InitializeComponent();
            BackColor = backgroundColor;
            SqlConnection conn = new SqlConnection();

            conn.ConnectionString = ConfigurationManager.AppSettings["connectionString"];


            conn.Open();
            string query = "SELECT sb.SIDEBAR_BUTTON_ID, sb.BUTTON_TEXT, sb.PARENT_BUTTON_ID from SIDEBAR_BUTTONS sb";

            try
            {
                using (SqlCommand command = new SqlCommand(query, conn))
                {
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            SIDEBAR_BUTTON button = new SIDEBAR_BUTTON();
                            button.SIDEBAR_BUTTON_ID = reader.GetInt32(0);
                            button.BUTTON_TEXT       = reader.GetString(1);
                            if (!reader.IsDBNull(2))
                            {
                                button.PARENT_BUTTON = reader.GetInt32(2);
                            }
                            button.displayed = false;
                            ListButtons.Add(button);
                        }
                    }
                }
                foreach (var button in ListButtons)
                {
                    if (button.PARENT_BUTTON == 0)
                    {
                        SideBarButton newButton = new SideBarButton();
                        newButton.button1.Tag = button.SIDEBAR_BUTTON_ID;
                        newButton.ButtonText(button.BUTTON_TEXT);
                        newButton.button1.Click += new EventHandler(Button_Click);
                        flowLayoutPanel1.Controls.Add(newButton);
                    }
                }
            }
            catch
            {
                MessageBox.Show("Could not load sidebar buttons.");
            }
        }