title: How to remove TabPage from TabControl?
body: <p>I want to remove a particular tabpage from the tabcontrol. For which i have the value of tab name which has to be closed.</p>
  
  <p>But, when i use..</p>
  
  <pre><code>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>It is not going inside the loop because the count is zero.
  whereas the the tabcontrol is visible with two tabs in it.</p>
  
  <p>whats the problem ?</p>
  
  <p>This is how i am adding the tabs -></p>
  
  <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>
  
  <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 
  { 
  
  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>