Пример #1
0
 /// <summary>
 /// Changes the active tab
 /// </summary>
 /// <param name="tabable">The new active tab</param>
 public void ChangeTab(ITabable tabable)
 {
     if (pages.ContainsKey(tabable.TabName))
     {
         tabControl.SelectedTab = pages[tabable.TabName];
     }
 }
Пример #2
0
        /// <summary>
        /// Add a new <see cref="TabPage"/> in the <see cref="TabControl"/> (it replaces any <see cref="TabPage"/> with the same name)
        /// </summary>
        /// <param name="tabable">The <see cref="ITabable"/> to add</param>
        /// <param name="switchToNewTab">If true, the newly added tab will become the active one</param>
        public void AddTab(ITabable tabable, bool switchToNewTab = false)
        {
            Form form = tabable.Form;

            form.Dock            = DockStyle.Fill;
            form.TopLevel        = false;
            form.Visible         = true;
            form.FormBorderStyle = FormBorderStyle.None;

            TabPage tabPage = new TabPage(tabable.TabName);

            tabPage.Controls.Add(form);

            if (pages.ContainsKey(tabable.TabName))
            {
                tabControl.TabPages.Remove(pages[tabable.TabName]);
                pages[tabable.TabName] = tabPage;
            }
            else
            {
                pages.Add(tabable.TabName, tabPage);
            }

            tabControl.TabPages.Add(tabPage);

            if (switchToNewTab == true)
            {
                ChangeTab(tabable);
            }
        }
Пример #3
0
 /// <summary>
 /// Closes the provided tab
 /// </summary>
 /// <param name="tabable">The <see cref="ITabable"/> to close</param>
 public void CloseTab(ITabable tabable)
 {
     if (pages.ContainsKey(tabable.TabName))
     {
         tabControl.SelectedTab = tabControl.TabPages[tabControl.TabPages.IndexOf(pages[tabable.TabName]) - 1];
         tabControl.TabPages.Remove(pages[tabable.TabName]);
         pages.Remove(tabable.TabName);
     }
 }