private void RemoveControl(Control ctrl)
 {
     if (this.InvokeRequired)
     {
         var d = new SafeControlAddDelegate(RemoveControl);
         this.Invoke(d, new object[] { ctrl });
         return;
     }
     this.Controls.Remove(ctrl);
     ctrl.Dispose();
 }
 private void AddControl(Control ctrl)
 {
     if (this.InvokeRequired)
     {
         var d = new SafeControlAddDelegate(AddControl);
         this.Invoke(d, new object[] { ctrl });
         return;
     }
     try
     {
         ctrl.BackColor = Color.Transparent; // Not all controls support transparency
     }
     catch { }
     this.Controls.Add(ctrl);
     ctrl.BringToFront();
 }