title: How can i remove the tabs from tabcontrol using c#
body: <p>How can i remove the tabs from tabcontrol when i reference each tab to the childform.</p>
  
  <p>I am using a tabcontrol, i want to remove a particular tab from the control. The value i have to do this in a string which i dynamically.</p>
  
  <p>How to remove the tab from tabcontrol using a existing tab name which i have in a string ??</p>
  
  <p>I tried something like...</p>
  
  <pre><code> string tabToRemove = "tabPageName";
  for (int i = 0; i &lt; myTabControl.TabPages.Count; i++)
  {
  if (myTabControl.TabPages[i].Name.Equals(tabToRemove, StringComparison.OrdinalIgnoreCase))
  {
      myTabControl.TabPages.RemoveAt(i);
      break;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>But in the above code, the myTabControl.TabPages.Count is always zero.</p>
  
  <p>Below is the code, to show i am creating the tabs. This is working perfectly.</p>
  
  <hr>
  
  <pre><code>         public void TabIt(string strProcessName)
  
          {
                      this.Show();
  
                      //Creating MDI child form and initialize its fields
                      MDIChild childForm = new MDIChild();
                      childForm.Text = strProcessName;
                      childForm.MdiParent = this;
  
                      //child Form will now hold a reference value to the tab control
                      childForm.TabCtrl = tabControl1;
  
                      //Add a Tabpage and enables it
                      TabPage tp = new TabPage();
  
                      tp.Parent = tabControl1;
                      tp.Text = childForm.Text;
                      tp.Show();
                      //child Form will now hold a reference value to a tabpage
                      childForm.TabPag = tp;
                      //Activate the MDI child form
                      childForm.Show();
                      childCount++;
  
                      //Activate the newly created Tabpage.
                      tabControl1.SelectedTab = tp;
                      tabControl1.ItemSize = new Size(200, 32);
                      tp.Height = tp.Parent.Height;
                      tp.Width = tp.Parent.Width;
          }
  
  
        public void GetTabNames()
  
        {
  
  foreach (string strProcessName in Global.TabProcessNames)
  
                      {
                          TabIt(strProcessName);
                      }
          }
  </code></pre>
  
  <hr>
  
  <p>The child form :</p>
  
  <hr>
  
  <pre><code>using System;
  using System.Drawing;
  using System.Collections;
  using System.ComponentModel;
  using System.Windows.Forms;
  using System.Data;
  using System.Diagnostics;
  using System.Drawing.Drawing2D;
  
  namespace Daemon
  {
      /// &lt;summary&gt;
      /// Summary description for MDIChild.
      /// &lt;/summary&gt;
      /// 
  
      public class MDIChild : System.Windows.Forms.Form
      {
          /// &lt;summary&gt;
          /// Required designer variable.
          /// &lt;/summary&gt;
          private System.ComponentModel.Container components = null;
          private TabControl tabCtrl;
          private TabPage tabPag;
  
          public MDIChild()
          {
              //
              // Required for Windows Form Designer support
              //
              InitializeComponent();
              //MDIChild TargerForm = new MDIChild();
              //WinApi.SetWinFullScreen(TargerForm.Handle); 
              //
              // TODO: Add any constructor code after InitializeComponent call
              //
          }
  
          /// &lt;summary&gt;
          /// Clean up any resources being used.
          /// &lt;/summary&gt;
          protected override void Dispose( bool disposing )
          {
              if( disposing )
              {
                  if(components != null)
                  {
                      components.Dispose();
                  }
              }
              base.Dispose( disposing );
          }
  
          public TabPage TabPag
          {
              get
              {
                  return tabPag;
              }
              set
              {
                  tabPag = value;
              }
          }
  
          public TabControl TabCtrl
          {
              set
              {
                  tabCtrl = value;
              }
          }
  
  
          #region Windows Form Designer generated code
          /// &lt;summary&gt;
          /// Required method for Designer support - do not modify
          /// the contents of this method with the code editor.
          /// &lt;/summary&gt;
          private void InitializeComponent()
          {
              this.SuspendLayout();
              // 
              // MDIChild
              // 
              this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
              this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
              this.BackColor = System.Drawing.SystemColors.InactiveCaptionText;
              this.ClientSize = new System.Drawing.Size(0, 0);
              this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
              this.MaximizeBox = false;
              this.MinimizeBox = false;
              this.Name = "MDIChild";
              this.Opacity = 0;
              this.ShowIcon = false;
              this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
              this.Text = "MDIChild"; 
              this.Activated += new System.EventHandler(this.MDIChild_Activated);
              this.Closing += new System.ComponentModel.CancelEventHandler(this.MDIChild_Closing);
              this.ResumeLayout(false);
  
          }
          #endregion
  
          private void MDIChild_Closing(object sender, System.ComponentModel.CancelEventArgs e)
          {
              try
              {
                  //Destroy the corresponding Tabpage when closing MDI child form
                  this.tabPag.Dispose();
  
                  //If no Tabpage left
                  if (!tabCtrl.HasChildren)
                  {
                      tabCtrl.Visible = false;
                  }
              }
              catch (Exception ex)
              { 
              }
          }
  
          private void MDIChild_Activated(object sender, System.EventArgs e)
          {
              try
              {
                  //Activate the corresponding Tabpage
                  tabCtrl.SelectedTab = tabPag;
  
                  if (!tabCtrl.Visible)
                  {
                      tabCtrl.Visible = true;
                  }
                  Global.ExistingTabProcessNames.Add(tabPag.Text);
              }
              catch (Exception ex)
              { 
              }
          }
  
      }
  }
  </code></pre>